Rebuild the Docker Container for Isaac ROS

Hey there

I’m relatively new to docker containers, so apologies if this is too obvious. I’ve been following this guide:

https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_common/index.html

I needed to add a couple of extra dependencies to the existing docker container. Therefore I added the following (commented) to Dockerfile.ros2_humble:

Install additional ROS packages

RUN apt-get update && apt-get install -y
ros-humble-camera-info-manager
ros-humble-rosbag2
ros-humble-hardware-interface \ # added this line for hardware interface
ros-humble-xacro \ # <— Add this line for xacro
ros-humble-rosbag2-compression-zstd
ros-humble-rosbag2-cpp
ros-humble-rosbag2-py
ros-humble-rosbridge-suite
ros-humble-rqt-graph
ros-humble-rqt-reconfigure
ros-humble-rviz-common
ros-humble-rviz-default-plugins
&& rm -rf /var/lib/apt/lists/*
&& apt-get clean

However, these don’t seem to update the actual running docker container. I did some further reading, and it would seem that I need to rebuild the docker image. (Let me know if I’m not on the right track). So I tried the following:

chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh ros2_humble.realsense
Target image name not specified, using ros2_humble-realsense-image
chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh ros2_humble.realsense-image
Target image name not specified, using ros2_humble-realsense-image-image
chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh
target image not specified
chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh ros2_humble.realsense
Target image name not specified, using ros2_humble-realsense-image
chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh ros2_humble.realsense
Target image name not specified, using ros2_humble-realsense-image
chris@ubuntu:~/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts$ ./build_base_image.sh aarch64.ros2_humble.realsense.user
Target image name not specified, using aarch64-ros2_humble-realsense-user-image

These don’t move anything forward, and there’s no building of a container happening. Is there any further command that I need to specify?

If I build a new container, does it result in a new run_dev.sh file?

I do have a .isaac_ros_common-config file in my scripts folder.
It contains the following: CONFIG_IMAGE_KEY=ros2_humble.realsense

Any assistance is appreciated.

1 Like

Hi @c4turner ,

We updated our Docker just tonight with the new release of Isaac ROS 2.1
Release note: Release Notes — isaac_ros_docs documentation

I want to highlight this new update in particular.

  • Streamlined developer experience with prebuilt Debian packages for Isaac ROS on x86 and Jetson platforms

If you haven’t heard of the NVIDIA build farm, I recommend watching this documentation as well.
https://nvidia-isaac-ros.github.io/getting_started/isaac_ros_buildfarm_cdn.html

Best,
Raffaello

I updated to the latest version of Isaac, without improvement.

The page below, regarding configuring the developer environment doesn’t actually cover the above question, and the docker script system that was developed is really very robust, so I want to avoid building my own dockerfile from scratch.

https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_common/index.html#isaac-ros-docker-development-environment

I should be able to add a few lines to the Dockerfile.ros2_humble, and it impact the entire workspace using the run_dev.sh sequence.

docker system prune -a

The above, very heavy handed approach to the docker container cleared everything out of cache, allows a rebuild, but it doesn’t fix the problem! So adding the ros-humble-xacro dependency to the Dockerfile.ros2_humble doesn’t get me anywhere. I’m at a loss for how changing the source file doesn’t result in a solution to to problem.

Is something going on behind the scenes that I’m not realizing? RVIZ seems to work, which is build using that same file.

Any suggestions would be appreciated. I’ve been working through this problem for several hours.