ros2_docker_template/docker-compose.yaml

30 lines
1.7 KiB
YAML

version: "3.9"
services: # in docker compose, service are definitions of your docker containers
hello-world: # for this example I am using a very simple docker build for reference: hello-world (builds very fast)
image: ghcr.io/bjoernellens1/ros2_docker_template/hello-world # hello-world image. No prefix means it defaults the image registry to dockerhub
build:
context: .
dockerfile: docker/hello-world.Dockerfile # the Dockerfile speciefies the steps taken in the build process.
tags:
- ghcr.io/bjoernellens1/ros2_docker_template/hello-world
target: hello-world # here you can explicitly specify the build target in the Dockerfile if you want only a specific build step for this service.
my_example: # this already represents a more complex ros2 build process.
image: ghcr.io/bjoernellens1/ros2_docker_template/my_example # hello-world image. No prefix means it defaults the image registry to dockerhub
build:
context: .
dockerfile: docker/my_example.Dockerfile # the Dockerfile speciefies the steps taken in the build process.
tags:
- ghcr.io/bjoernellens1/ros2_docker_template/my_example
environment:
# Allows graphical programs in the container.
- DISPLAY=${DISPLAY}
- QT_X11_NO_MITSHM=1
- NVIDIA_DRIVER_CAPABILITIES=all # For Nvidia hardware acceleration (CUDA, ...). This might additionally need some extra tools installed (Nvidia Container Toolkit?)
volumes:
# Allows graphical programs in the container.
- /tmp/.X11-unix:/tmp/.X11-unix:rw
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
network_mode: host # host networking makes life easier