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
kumascript¶
The kumascript Docker image contains the kumascript rendering engine and support files.
The image must be created from the kuma repo since it depends upon that
repo’s locale
sub-module. From the kuma repo’s root directory, use
make build-kumascript
for an image tagged with the current commit-hash,
make build-kumascript KS_VERSION=latest
for one tagged with latest
,
or make build-kumascript-with-all-tags
for an image tagged with both.
The image tagged latest
is used by default for development, while an
image tagged with a commit-hash can be used for deployment. The official
images are created from the master branch in Jenkins and published to
DockerHub.