NVIDIA-ISAAC-ROS / isaac_ros_common

Common utilities, packages, scripts, Dockerfiles, and testing infrastructure for Isaac ROS packages.
https://developer.nvidia.com/isaac-ros-gems
Other
195 stars 138 forks source link

Using Docker-compose to Manage Docker Lifecycle #113

Open tonaaskarwur opened 7 months ago

tonaaskarwur commented 7 months ago

I am using an NVIDIA Orin with a 5.1.2 Jeptack. I am running ros2 nodes through docker from run_dev.sh which works fine. Each docker session is responsible for one task (for example: navigation), with the hopes that the process is isolated.

For further development, I wanted to manage the docker lifecycle and thought that docker-compose would be a good solution for it. My issue is that the way we launch docker by default through run_dev.sh which sets a lot of stuff to make sure the docker is robust and set-up properly is complicated to incorporate it within the docker-compose yaml.

I installed docker-compose and tried "docker-compose build" on Dockerfile.aarch64.ros2_humble which I believe is the base of the ROS2, and the container works fine. But it fails when I tried to launch docker-compose on Dockerfile.user. The error states that it is unable to find user admin, which I believe is a job that the build_base_image.sh would do in the default setup through run_dev.sh.

Regarding the direction of what I am doing, is this correct? or can somebody point-out me the correct way how people would manage the lifecycle of containers? or probably a guide?

The sole guide that I found is from seabrass which covers the usage of ROS2 and docker compose. Thank you.