Skip to content

Creating an edX Docker image

Morgan Robertson edited this page Nov 30, 2015 · 1 revision

A Docker image containing the edX stack can be created using a Dockerfile and the docker build command. To build the image, you'll need a machine running Docker (4GB RAM recommended).

Note: These instructions show how to build a Cypress image.

Clone the configuration repo

$ git clone https://github.com/appsembler/configuration.git -b appsembler_docker/feature/mergeCypress configuration

The files required to build a particular image should be located at configuration/docker/<image_name>.

Overwrite server-vars.yml

The configuration repo contains a dummy server-vars.yml because we store most of our server-vars files in the edx-configs repo. Overwrite the dummy server-vars.yml with the file you want. For example,

$ git clone https://github.com/noderabbit-team/edx-configs

$ cp edx-configs/baseSettings/files/cypress-docker-server-vars.yml configuration/docker/cypress-lite/server-vars.yml

Build the image

$ cd configuration/docker/cypress-lite

$ docker build -t appsembler/cypress .

Known issues

We use runit as our init process inside the container, which seems to cause some funkiness with different services. Occasionally, an Ansible task will fail while building an image because a service hasn't (re)started properly. At some point, we should investigate and fix these issues, but in the meantime, you can just rerun docker build.