Se você estiver procurando por uma solução melhor, vá e check -out OSRF's Rocker Repository
Esse script permite criar contêineres do Docker, onde você pode executar programas gráficos como Gazebo sem muito esforço. Esta automação imita sua instalação local e permite executar seus programas em um ambiente de sandbox. Ele monta seu diretório inicial para o contêiner e compartilha as mesmas variáveis de usuário.
Não há necessidade de instalar este "pacote". Mas se você deseja que você possa fazer algo como:
~/.dockerize~/.dockerize/usr/local/bin/dockerize ~./.dockerize/dockerize.shROS_DISTRO=noetic dockerize em qualquer lugar cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeConstruir imagens
Construir imagens é bem direto. O script constrói a imagem com a versão ROS descrita na variável de ambiente ROS_DISTRO . Pode ser definido como versões do ROS que são publicadas no Docker Hub.
ROS_DISTRO=humble ./dockerize.sh buildExecute imagens
./dockerize.sh run O usuário não pertence a nenhum grupo na primeira execução. Você pode verificar com o comando groups . Assim, após o login no contêiner, você precisa fazer login novamente para estar nos grupos onde o usuário local pertence. Isso é necessário para acessar os dispositivos como /dev/dri e /dev/snd , etc.
# Inside Docker
$ su - ${USER}
Password:Ao executar o contêiner, você pode usar o desenvolvimento remoto TMUX ou VSCODE para fazer o desenvolvimento.
Anexar contêiner em execução
ROS_DISTRO=humble ./dockerize.sh attachParando de executar o contêiner
ROS_DISTRO=humble ./dockerize.sh stopLimpeza de recipientes destacados
ROS_DISTRO=humble ./dockerize.sh cleanNo host
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
No recipiente
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
Créditos: https://stackoverflow.com/a/44187181
Personalize como Crie qualquer outro Dockerfile.