-
Notifications
You must be signed in to change notification settings - Fork 219
Open
Description
I'm puzzled by some of the steps in the Dockerfile. I hadn't looked at the docker build carefully before, but now I see some things that make me wonder:
- It builds from the official ros dockerhub repository, and pulls ros:jazzy-ros-base, so why is it doing all the base stuff in the ROS install instructions like locale, timezone. timezone is installed by jazzy-ros-core so doesn't need to be re-installed. ros-jazzy-ros-base also sets up LC_ALL and LANG, so installing locales shouldn't be needed. It also installs some of the base packages like gnupg2, curl. The linorobot2 Dockerfile could be simplified by not building everything.
- In the past, I pulled from the osrf/ros: collection, which has these images: https://hub.docker.com/r/osrf/ros/tags. Some of the images in there are interesting, like jazzy-simulation and jazzy-desktop-full-noble, so it seems if the linorobot2 Dockerfile pulled from there, it wouldn't have to install gazebo harmonic.
- The .env causes cyclonedds to be installed and used. fastrtps is the default for ROS. Why use cyclonedds? There might be advantages to using the default. @hippo5329 points out that fastrtps is needed to run hardware, and using cyclonedds is ensuring that docker won't work right if someone tries it on hardware.
- I know I was responsible for adding the latest keys repo (ros2-apt-source.deb) but now I look at how the underlay docker images are generated, I see that has already been done, so can be removed from this Dockerfile
IOW it looks like there could be simpler and more stable ways to build the linorobot2 docker image. Are you open to changes?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels