Wenn Sie nach einer besseren Lösung suchen und das Rocker -Repository von OSRF checken
Mit diesem Skript können Sie Docker -Container erstellen, bei denen Sie grafische Programme wie Gavebo ohne viel Aufwand ausführen können. Diese Automatisierung ahmt Ihre lokale Installation nach und ermöglicht es Ihnen, Ihre Programme in einer Sandbox -Umgebung auszuführen. Es montiert Ihr Heimverzeichnis in den Container und teilt die gleichen Benutzervariablen.
Es ist nicht erforderlich, dieses "Paket" zu installieren. Aber wenn Sie wünschen, Sie können so etwas wie:
~/.dockerize~/.dockerize~./.dockerize/dockerize.sh /usr/local/bin/dockerizeROS_DISTRO=noetic dockerize anall cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeBilder erstellen
Das Erstellen von Bildern ist ziemlich einfach. Das Skript erstellt das Bild mit ROS -Version, die in ROS_DISTRO -Umgebungsvariablen beschrieben ist. Es könnte auf Versionen von ROS eingestellt werden, die in Docker Hub veröffentlicht werden.
ROS_DISTRO=humble ./dockerize.sh buildBilder ausführen
./dockerize.sh run Der Benutzer gehört im ersten Lauf zu keiner Gruppe. Sie können es überprüfen, indem Sie den Befehl groups ausführen. Nachdem Sie sich im Container angemeldet haben, müssen Sie sich also erneut anmelden, um in den Gruppen zu sein, in denen Ihr lokaler Benutzer gehört. Dies ist erforderlich, um auf die Geräte wie /dev/dri und /dev/snd usw. zugreifen zu können.
# Inside Docker
$ su - ${USER}
Password:Nach dem Ausführen des Containers können Sie TMUX- oder VSCODE -Remote -Entwicklung verwenden, um die Entwicklung zu entwickeln.
Anbringen von Laufbehälter
ROS_DISTRO=humble ./dockerize.sh attachStoppen Sie den laufenden Behälter
ROS_DISTRO=humble ./dockerize.sh stopReinigungsbehälter aufgenommen
ROS_DISTRO=humble ./dockerize.sh cleanAuf dem Gastgeber
export NVIDIA_DRIVER_VERSION="$(nvidia-smi --query-gpu=driver_version --format=csv,noheader)"
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/"$NVIDIA_DRIVER_VERSION"/NVIDIA-Linux-x86_64-"$NVIDIA_DRIVER_VERSION".run
mv NVIDIA-Linux-x86_64-"$NVIDIA_DRIVER_VERSION".run NVIDIA-DRIVER.run
Im Behälter
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
Credits: https://stackoverflow.com/a/44187181
Passen Sie an, genau wie eine andere Dockerfile zu erstellen.