Si está buscando una mejor solución, vaya y consulte el repositorio de rockeros de OSRF
Este script le permite crear contenedores Docker donde puede ejecutar programas gráficos como Gazebo sin mucho esfuerzo. Esta automatización imita su instalación local y le permite ejecutar sus programas en un entorno Sandbox. Monta su directorio de inicio al contenedor y comparte las mismas variables de usuario.
No hay necesidad de instalar este "paquete". Pero si lo desea, puede hacer algo como:
~/.dockerize~/.dockerize~./.dockerize/dockerize.sh /usr/local/bin/dockerizeROS_DISTRO=noetic dockerize en cualquier lugar cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeConstruir imágenes
Construir imágenes es bastante sencilla. El script construye la imagen con la versión ROS descrita en la variable de entorno ROS_DISTRO . Se podría establecer en versiones de ROS que se publican en Docker Hub.
ROS_DISTRO=humble ./dockerize.sh buildEjecutar imágenes
./dockerize.sh run El usuario no pertenece a ningún grupo en la primera ejecución. Puede verificarlo ejecutando el comando groups . Por lo tanto, después de iniciar sesión en el contenedor, debe iniciar sesión nuevamente para estar en los grupos donde pertenece su usuario local. Esto es necesario para acceder a dispositivos como /dev/dri y /dev/snd , etc.
# Inside Docker
$ su - ${USER}
Password:Al ejecutar el contenedor, puede usar el desarrollo remoto TMUX o VScode para hacer el desarrollo.
Ajustar el contenedor en ejecución
ROS_DISTRO=humble ./dockerize.sh attachDejar de correr en el contenedor
ROS_DISTRO=humble ./dockerize.sh stopLimpieza de contenedores separados
ROS_DISTRO=humble ./dockerize.sh cleanEn el anfitrión
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
En el contenedor
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
Créditos: https://stackoverflow.com/a/44187181
Personalizar al igual que Crear cualquier otro DockerFile.