orise-robotics / ros2-docker-devel

Helper tool to develop ROS2 packages using Docker
Apache License 2.0
5 stars 0 forks source link

Use desktop-full version #42

Open pxalcantara opened 3 years ago

pxalcantara commented 3 years ago

Hi guys,

Why don't you use the desktop-full version instead of just the base. What do you think about have also this option to create the image?

caioaamaral commented 3 years ago

@pxalcantara my idea was to keep the image size small, so it builds faster, and at the same time offers a start point to build and run docker containers for ros development purposes. That way, at least in my point of view, the base entry point fits well as it offers all the cool tools we might need to build ros applications, but installing extra ros packages would be charged to the user.

I think this approach is good, so any missing deps would be easily spotted in a fresh new workspace. But which applications do you have in mind that would take advantage of using the desktop-full?

ivan1993br commented 3 years ago

I agree with @caioaamaral point of view, however I do not oppose to have a flag --full, or --desktop if the user wants to build with that, I do not think it will break the current setup, what do you think @caioaamaral ?

pxalcantara commented 3 years ago

But which applications do you have in mind that would take advantage of using the desktop-full?

I agree with you, I was thinking about using the desktop-full just to make life easier with the RVIZ, GAZEBO, rqt, everything already installed because, as far as I understood, the base doesn't have these packages right?

And the flag would give just more flexibility and possibilities for the user but I agree with you that install the desktop-full will take much more time.

caioaamaral commented 3 years ago

however I do not oppose to have a flag --full, or --desktop if the user wants to build with that, I do not think it will break the current setup

@ivan1993br @pxalcantara having a flag for it seems a great idea indeed. Overall I think we should make ros_ws more flexible for user configuration (either by using flags or through configuration files)

pxalcantara commented 3 years ago

I'll try to make this change and learn in the process. In this case, what do you suggest? use an ARG as the DISTRO?

caioaamaral commented 3 years ago

I'll try to make this change and learn in the process. In this case, what do you suggest? use an ARG as the DISTRO?

REP142 treats desktop-full, desktop and ros_base as an "end-user entry point". So I would suggest adding a new arg to cover which entry point we are going to use for the distro specified.

Since entry_point is already a "key word" in the docker context, I suggest using something else like "variant", so we would end up with two args: distro and "variant".

ARG DISTRO
ARG VARIANT

FROM ros:${DISTRO}-{VARIANT}

keeping the distro as default to "foxy" and the "variant" default to "ros-base"

mateus-amarante commented 3 years ago

An option for this is great and @caioaamaral presented a good way of doing this. Just some comments:

The file .env is used to set up environment variables to be used inside the docker-compose file, so it serves like a config file. Unfortunately, docker-compose is quite limited in terms of configuration, so you might struggle a bit.

Let us know if you need any help! You are welcome to contribute and share your ideas!