Docker Images

There are multiple Docker images defined within docker/. They serve as images for our Gitlab CI or may be used for other development purposes.

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/...

Docker Images

The images can be built by running docker-compose:

docker-compose ${SERVICE}

from docker/.

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

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

  • ${SERVICE}=cml: Pytorch with CUDA and the CML-Bot are installed. Both are necessary to train or test neural networks and publish the results using CML.

  • ${SERVICE}=kitcar-ros: This image is intended to be used within the kitcar-ros CI pipeline. It adds the whole simulation code and installs some more packages, which are necessary for running the simulation within the kitcar ros CI.

The services cml and kitcar-ros inherit from base.

Docker Compose

For simplification we have introduced a docker compose file. It contains the main information about the build configuration of our docker images.

version: '3.8'
services:
  base:
    image: ${IMAGE_URL}/ci:${CI_IMAGE_TAG}
    build:
      context: ../
      dockerfile: docker/Dockerfile
  cml:
    image: ${IMAGE_URL}/ci:${CI_IMAGE_TAG_CML}
    depends_on:
    - base
    build:
      context: ../
      dockerfile: docker/DockerfileCML
      args:
        PARENT: ${IMAGE_URL}/ci:${CI_IMAGE_TAG}
  kitcar-ros:
    image: ${IMAGE_URL}/kitcar_ros_ci:${CI_IMAGE_TAG_ROS}
    depends_on:
    - base
    build:
      context: ../
      dockerfile: docker/DockerfileROS
      args:
        PARENT: ${IMAGE_URL}/ci:${CI_IMAGE_TAG}