ROS specific needs
Requirement
In the scope of the learn-real project, ROS is one of the possible system used however it needs to write some files (pids, small logs, etc.) in order to run properly however these can be discarded when the run ends.
The current estimation done by @cazinn for the space needed is about 10Mb.
The ROS main folder is ~.ros
by default and that can be changed using the ROS_HOME environment variable.
Current situation
For security reasons, our containers are run in read-only mode with two small read/write tmpfs mounted on the containers: /tmp and /var. Each of which is allocated 500kb which is enough for the use of BEAT.
We do have support for adding temporary volumes in place as well as setting custom environment variables.
Possible solutions
In order to run Docker containers that can execute ROS, we have several possibilities:
- Mount a tmpfs volume on the default ROS home folder
- Make either the
/tmp
or/var
volumes bigger and pointROS_HOME
in a subfolder in them - Add a new tmpfs volume in a separated known folder and point
ROS_HOME
to it
ROS_HOME
can either be hardcoded during the image creation process or dynamically set when running the container.
Main questions
For solution 1, from where should the information about the size of the target folder come from as well as the target location ?
For solution 2, ROS_HOME
can be hardcoded as part of the image creation
For solution 3, same questions as for solution 1 with the possibility of hardcoding the environment variable as in solution 2.