Jika Anda mencari solusi yang lebih baik dan checkout repositori rocker OSRF
Skrip ini memungkinkan Anda untuk membuat wadah Docker di mana Anda dapat menjalankan program grafis seperti Gazebo tanpa banyak usaha. Otomasi ini meniru instalasi lokal Anda dan memungkinkan Anda menjalankan program Anda di lingkungan Sandbox. Ini memasang direktori rumah Anda ke wadah dan membagikan variabel pengguna yang sama.
Tidak perlu menginstal "paket" ini. Tetapi jika Anda berharap dapat melakukan sesuatu seperti:
~/.dockerize~/.dockerize~./.dockerize/dockerize.sh /usr/local/bin/dockerizeROS_DISTRO=noetic dockerize di mana saja cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeBangun gambar
Membangun gambar cukup lurus ke depan. Script membangun gambar dengan versi ROS yang dijelaskan dalam variabel lingkungan ROS_DISTRO . Ini dapat diatur ke versi ROS yang diterbitkan di Docker Hub.
ROS_DISTRO=humble ./dockerize.sh buildJalankan gambar
./dockerize.sh run Pengguna bukan milik grup apa pun dalam menjalankan pertama. Anda dapat memeriksanya dengan menjalankan perintah groups . Jadi, setelah masuk ke wadah, Anda harus masuk lagi untuk berada di grup tempat pengguna lokal Anda berada. Ini diperlukan untuk mengakses perangkat seperti /dev/dri dan /dev/snd , dll.
# Inside Docker
$ su - ${USER}
Password:Setelah menjalankan wadah, Anda dapat menggunakan pengembangan jarak jauh TMUX atau VSCode untuk melakukan pengembangan.
Melampirkan wadah yang berjalan
ROS_DISTRO=humble ./dockerize.sh attachBerhenti menjalankan wadah
ROS_DISTRO=humble ./dockerize.sh stopMembersihkan wadah terpisah
ROS_DISTRO=humble ./dockerize.sh cleanDi tuan rumah
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
Di dalam wadah
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
Kredit: https://stackoverflow.com/a/44187181
Kustomisasi sama seperti membuat DockerFile lainnya.