إذا كنت تبحث عن حل أفضل ، فقم بالخروج من مستودع الروك من OSRF
يتيح لك هذا البرنامج النصي إنشاء حاويات Docker حيث يمكنك تشغيل برامج رسومية مثل Gazebo دون جهد كبير. يحاكي هذه الأتمتة التثبيت المحلي الخاص بك ويسمح لك بتشغيل برامجك في بيئة صندوق الرمل. يقوم بتركيب الدليل المنزلي إلى الحاوية ويشارك نفس متغيرات المستخدم.
ليست هناك حاجة لتثبيت هذه "الحزمة". ولكن إذا كنت ترغب في أن تتمكن من فعل شيء مثل:
~/.dockerize~/.dockerize~./.dockerize/dockerize.sh /usr/local/bin/dockerizeROS_DISTRO=noetic dockerize في أي مكان cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeبناء الصور
بناء الصور مستقيم إلى الأمام. يقوم البرنامج النصي بإنشاء الصورة مع إصدار ROS الموضح في متغير البيئة ROS_DISTRO . يمكن ضبطه على إصدارات ROS التي يتم نشرها في Docker Hub.
ROS_DISTRO=humble ./dockerize.sh buildتشغيل الصور
./dockerize.sh run لا ينتمي المستخدم إلى أي مجموعة في المدى الأول. يمكنك التحقق من ذلك عن طريق تشغيل أمر groups . وبالتالي ، بعد تسجيل الدخول إلى الحاوية ، تحتاج إلى تسجيل الدخول مرة أخرى لتكون في المجموعات التي ينتمي إليها المستخدم المحلي. هذا ضروري للوصول إلى أجهزة مثل /dev/dri و /dev/snd ، إلخ.
# Inside Docker
$ su - ${USER}
Password:عند تشغيل الحاوية ، يمكنك استخدام تطوير TMUX أو VSCODE عن بُعد للقيام بالتطوير.
إرفاق حاوية الجري
ROS_DISTRO=humble ./dockerize.sh attachإيقاف تشغيل الحاوية
ROS_DISTRO=humble ./dockerize.sh stopتنظيف حاويات منفصلة
ROS_DISTRO=humble ./dockerize.sh cleanعلى المضيف
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
في الحاوية
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
الاعتمادات: https://stackoverflow.com/a/44187181
تخصيص مثل إنشاء أي dockerfile أخرى.