หากคุณกำลังมองหาทางออกที่ดีกว่าไปและชำระเงินที่เก็บโยกของ OSRF
สคริปต์นี้ช่วยให้คุณสร้างคอนเทนเนอร์ Docker ที่คุณสามารถเรียกใช้โปรแกรมกราฟิกเช่นศาลาได้โดยไม่ต้องใช้ความพยายามมากนัก ระบบอัตโนมัตินี้เลียนแบบการติดตั้งในพื้นที่ของคุณและช่วยให้คุณสามารถเรียกใช้โปรแกรมของคุณในสภาพแวดล้อม Sandbox มันติดตั้งไดเรกทอรีโฮมเมดของคุณไปยังคอนเทนเนอร์และแชร์ตัวแปรผู้ใช้เดียวกัน
ไม่จำเป็นต้องติดตั้ง "แพ็คเกจ" นี้ แต่ถ้าคุณหวังว่าคุณจะทำอะไรได้บ้าง:
~/.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 ผู้ใช้ไม่ได้อยู่ในกลุ่มใด ๆ ในการวิ่งครั้งแรก คุณสามารถตรวจสอบได้โดยคำสั่ง Running 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 อื่น ๆ