Docker

Docker is used for development and for deployment.

Docker Images

Docker images are used in development, usually with the local working files mounted in the images to set behaviour.

Images are built by Jenkins, after tests pass, and are published to DockerHub. We try to store the configuration in the environment, so that the published images can be used in deployments by setting environment variables to deployment-specific values.

Here are some of the images used in the Kuma project:

kuma

The kuma Docker image builds on the kuma_base image, installing a kuma branch and building the assets needed for running as a webservice. The environment can be customized for different deployments.

The image can be recreated locally with make build-kuma.

The image tagged latest is used by default for development. It can be created locally with make build-kuma VERSION=latest. The official latest image is created from the master branch in Jenkins and published to DockerHub.

kuma_base

The kuma_base Docker image contains the OS and libraries (C, Python, and Node.js) that support the kuma project. The kuma image extends this by installing the kuma source and building assets needed for production.

The image can be recreated locally with make build-base.

The image tagged latest is used by default for development. It can be created locally with make build-base VERSION=latest. The official latest image is created from the master branch in Jenkins and published to DockerHub