Table of Contents

Docker

Docker is used for development and (soon) 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 quay.io. 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 quay.io.

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 localled with make build-base VERSION=latest. The official latest image is created from the master branch in Jenkins and published to quay.io

kumascript

The kumascript Docker image contains the kumascript rendering engine and support files. The environment can be customized for different deployments.

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

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

integration-tests

The integration-tests Docker image contains browser-based integration tests that check the functionality of a running Kuma deployment.

The image can be recreated locally with docker build -f docker/images/integration-tests/ ., but this is only necessary for image development. Most developer will follow the Client-side testing documentation to develop and run these integration tests.

The image is built and used in Jenkins in the stage-integration-tests and prod-integration-tests pipelines, configured by scripts in the Jenkinsfiles folder. It is not published to quay.io.