Docker Images

There are multiple Docker images defined within simulation/docker. They serve as images for our Gitlab CI or may be used for other development purposes. Generally, there is a build.sh script for every image that allows to generate the image without further work necessary.

The images are also built within the Gitlab CI pipeline and pushed to our Gitlab Docker registry. After logging into the registry

docker login git.kitcar-team.de:4567

all images available can be pulled.

An image built locally can be uploaded to the Gitlab Docker registry with:

docker push git.kitcar-team.de:4567/kitcar/kitcar-gazebo-simulation/...

Simulation CI Image

This image is intended to be used as a base image for the Gitlab-CI. It is not supposed to work out of the box, just as a starting point to speed up the CI pipeline.

The image can be built by running the build.sh script:

./build.sh ${SERVICE} ${IMAGE_TAG} ${PARENT_TAG}

from simulation/docker/ci.

Dependending on the provided ${SERVICE} different packages are installed:

  • ${SERVICE}=base: No additional packages.

  • ${SERVICE}=machine_learning: Additional machine learning pip packages and NodeJS are installed. Both are necessary to train or test neural networks and publish the results using CML.

  • ${SERVICE}=docs: Additional machine learning and documentation pip packages are installed. Both are necessary to build Sphinx.

The services docs and machine_learning inherit from base. For that purposes the parent’s image must be passed when building docs or machine_learning.

The dependency graph is: base -> machine_learning -> docs. (Because the machine learning packages are required when building the documentation. However, the NodeJS is not actually required, but is installed to simplify the dependencies.)

Simulation Image

A docker image containing the simulation.

The image can be built by running the build.sh script:

./build.sh ${CI_REGISTRY} ${PARENT_TAG_NAME} ${TAG_NAME} ${KITCAR_REPO_PATH_IN_IMAGE}

from simulation/docker/default.

Gazebo Kitcar ROS Image

This image is intended to be used within the kitcar-ros CI pipeline.

The image can be built by running the build.sh script:

./build.sh ${CI_REGISTRY} ${PARENT_TAG} ${IMAGE_TAG}

from simulation/docker/kitcar_ros_ci.