Customizable Template for Docker Environment Setup

Hello everyone,

I’d like to share and release an easy to use repository I’ve created to help streamline and simplify the setup process for different ROS environments and it’s dependencies using Docker. The template provides a flexible and easy-to-use framework that allows you to configure the environment tailored to your specific needs.

I have been working on setting environments and packages that range across different OS and Distro requirements and managing them with Docker was definitely the shot. In this process I managed to shape this template for easily setting up different ROS envs with minimal efforts in listing and installing dependencies. My goal with this Docker template was to speed up the setup process, make it smoother, and eliminate the repetitive steps needed to get everything running.

Key Features:

  • Pre-configured ROS env: The template comes with an initial ROS Noetic base version, making it quick to start developing without many additional setup steps.
  • Configurable .env file: Easily modify arguments in the .env and Dockerfile to fit your specific ROS version, dependencies, and configurations.
  • Customization: Easily modify the template to add any extra dependencies or changes as needed.

How it works:

  • Simply clone the repository, customize the files mentioned in the README.md for your environment, and build your Docker image.
  • The template can be used for both ROS 1 and ROS 2 setups, and it integrates seamlessly with your ROS packages and dependencies.

There is scope for more work here and I’d love to get feedback from the community on how this template can be improved to make this as useful as possible for everyone. So if you have any suggestions, improvements, or features you’d like to see, please feel free to share! :raised_hands: With this as a starter, I look forward to contributing more!!

You can find the repository here: GitHub - dipshikha-das/docker-env-blueprints at ros-any

Looking forward to your feedback! :star2:

4 Likes

Hey @DipshikhaDas , nice work! I tested it on a Windows machine, using WSL2 for a ROS 2 Humble build. Something that I’d like to see added to the # Install generic packages section would be a terminal manager - I love to use terminator during development. The main rationale behind this is that you often have to monitor multiple things on different terminals during the development phase. I find it quite intuitive to start the container with the terminator program already running, and then I create new terminal panes as and when necessary. This keeps everything well organised.

1 Like

Thanks @ssarkar for the additional tests! And yes I will update the install section with some more utility packages like terminator. Thank you again for your suggestions!