Public | Automated Build

Last pushed: 2 years ago
Short Description
Automated docker build for ONS MetaMaker- a Django web service for annotating datasets with DCAT
Full Description


This is our web-based metadata annotater for data repositories. We are developing in Django, a Python web framework, and the whole project will be encapsulated in a Docker container for easy redeployment and re-use by the community.

What's in this Git repo?

  1. - this readme file
  2. DockerFile - a bash script used for installing this Django app and all dependencies in a Docker container.
  3. metamaker_django - a folder containing the Django app
  4. dev_notes - a folder containing notes from our development process. Look here for the basic specification and our TODO list alongside other development docs such as 'use cases' and 'information model' etc.

Other sources of information

Alongside the 'dev_notes' folder here, we have a Trello board that is publicly viewable here:

Contact us if you want to get added to the Trello or you can raise an issue on GitHub.

Where's the live website?

Currently the site isn't live. Actually, currently the site isn't anything - this is my initial commit!


The expected way for users to install this system would be to simply run the Docker container. More details will follow but you can find out how to install Docker and run through a great tutorial at

It would also be possible to simply copy the metamaker_django folder to your own system and then run as a Django app.

Run using Docker

If you have docker installed (see the link above), then you can open the Docker commandline and use the following command:

$> docker run -d -p 8000:8000 onsopendata/metamaker

This should go direct to DockerHub, download the container and set it running in the background. It'll map the Django webserver's port (8000) to the hosts port (8000) and so if you're running Linux on your host system you should (I think) be able to access the Django app by opening a web browser and navigating to

On a Mac your docker container will itself be running in a VirtualBox container. To find out what the IP address is for that outer container, user the command:

$> docker-machine ls

This should produce a result like:

NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://           v1.11.0 

You can browse to the URL in this result but using port 8000 i.e.

Updating Docker

If you think we've updated the Dockerfile since you last grabbed it from Docker Hub, you can update your local Docker machine using the command:

$> docker pull onsopendata/metamaker

This ought to look for differences between our latest image and your local copy and then update yours accordingly.

Docker troubleshooting

If you've run the docker image, it'll stay running in the background until you kill it. This can cause you to receive an error if you try running the image again while the previous run is still ongoing. In order to list running machines, use the following command:

$> docker ps

You can then kill any running docker container using the container ID e.g. dd60d00b5deb

$> docker kill dd60d00b5deb

Docker Pull Command
Source Repository