Skip to content

Commit e03fc68

Browse files
smartin015mergify[bot]
authored andcommitted
Replace start-docker.sh with docker-compose.yml (#422)
(cherry picked from commit 352061d) # Conflicts: # doc/how_to_guides/how_to_setup_docker_containers_in_ubuntu.rst
1 parent ef7c789 commit e03fc68

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

_scripts/docker-compose.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Example command:
2+
#
3+
# DOCKER_IMAGE=humble-source docker-compose run gpu
4+
5+
x-base-cpu: &base-cpu
6+
privileged: true
7+
network_mode: host
8+
environment:
9+
QT_X11_NO_MITSHM: 1
10+
volumes:
11+
- /tmp/.X11-unix:/tmp/.X11-unix
12+
- ~/.Xauthority:/root/.Xauthority
13+
command: /bin/bash
14+
15+
x-base-gpu: &base-gpu
16+
<<: *base-cpu
17+
deploy:
18+
resources:
19+
reservations:
20+
devices:
21+
- driver: nvidia
22+
count: 1
23+
capabilities: [gpu]
24+
environment:
25+
NVIDIA_VISIBLE_DEVICES: all
26+
NVIDIA_DRIVER_CAPABILITIES: all
27+
28+
services:
29+
cpu:
30+
<<: *base-cpu
31+
image: moveit/moveit2:$DOCKER_IMAGE
32+
volumes:
33+
- moveit2-data:/root
34+
environment:
35+
DISPLAY: $DISPLAY
36+
gpu:
37+
<<: *base-gpu
38+
image: moveit/moveit2:$DOCKER_IMAGE
39+
volumes:
40+
- moveit2-data:/root
41+
environment:
42+
DISPLAY: $DISPLAY
43+
44+
volumes:
45+
moveit2-data:
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
How to Set Up MoveIt 2 Docker Containers in Ubuntu
2+
===================================================
3+
This guide will provide a walkthrough on how to get a Docker container with MoveIt 2 dependencies set up quickly.
4+
It includes a docker-compose config file that will get you up and running in MoveIt quickly!
5+
This guide is intended for people who would like to have a separate environment for working with MoveIt up and running quickly \
6+
without having to do much configuring. In this guide, we will be setting up a ROS2 Rolling environment.
7+
8+
Learning Objectives
9+
-------------------
10+
11+
- How to setup a Docker environment using the provided docker compose config
12+
13+
Requirements
14+
------------
15+
16+
- Ubuntu 20.04 or 22.04
17+
- `Docker Installation for Ubuntu <https://docs.docker.com/engine/install/ubuntu/>`_
18+
- `Nvidia drivers for Docker <https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit>`_
19+
- `docker compose (if not already installed via Docker Desktop) <https://docs.docker.com/compose/install/>`_
20+
21+
Steps
22+
-----
23+
1. Install Docker and docker compose (links are available in the Requirements section) and be sure to follow the `Linux Post Install <https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user>`_ instructions. If you do not complete these additional steps you will need to preface all ``docker`` commands with ``sudo``.
24+
25+
2. Open a terminal session, download the config, and make it executable.
26+
27+
.. code-block:: bash
28+
29+
wget https://raw.githubusercontent.com/ros-planning/moveit2_tutorials/how-to-docker-ubuntu/_scripts/docker-compose.yml
30+
31+
3. Launch the container (you may need to hyphenate ``docker-compose`` if using compose V1)
32+
33+
.. code-block:: bash
34+
35+
DOCKER_IMAGE=rolling-source docker compose run gpu
36+
37+
You can replace ``rolling-source`` with other tagged images, e.g. ``humble-source``. Similarly, you can replace ``gpu`` with ``cpu`` if you do not wish to run using Nvidia GPU drivers.
38+
39+
4. You should now be inside of your Docker container, in the workspace directory. You should now be able to start working with MoveIt!
40+
41+
Whenever you wish to reenter your container, run the same command as in #3.
42+
43+
Further Reading
44+
---------------
45+
- For more information about Docker best practices with respect to MoveIt,
46+
refer to `this blog post <https://picknik.ai/ros/robotics/docker/2021/07/20/Vatan-Aksoy-Tezer-Docker.html>`_
47+
from PickNik's Vatan Aksoy Tezer and Brennard Pierce.
48+
49+
- You can find a list of tagged images for the MoveIt 2 Docker container `here <https://hub.docker.com/r/moveit/moveit2/tags>`_.
50+
The tagged images coincide with ROS2 version releases. The ``release`` version of the container provides an environment in which MoveIt 2 is installed via the binaries.
51+
The ``source`` version of the Docker image will build MoveIt 2 from source.
52+
You can use any of the images in that link by substituting the DOCKER_IMAGE environment variable with ``moveit/moveit2:<tag_name>``, where ``<tag_name>`` is from the above link.
53+
For example, this guide instructs you to use the image with the tag ``rolling-source``.

0 commit comments

Comments
 (0)