Custom Dev Container Config for Gazebo Simulation in GitHub Codespaces

Hi everyone,

I’m here from GSoC 2025. I’ve been working with gz-sim (Gazebo simulation) in GitHub Codespaces and noticed that there isn’t a pre-configured dev container setup for it. Since it can be tricky for new users to set up the correct environment manually, I was thinking of creating a custom dev container configuration to make it easier for others to get started with Gazebo simulations in Codespaces.

Here’s what I have in mind:

  • devcontainer.json: A configuration file that sets up the environment with necessary extensions like ms-vscode.cpptools for C++ development, ms-vscode.cmake-tools for CMake projects, and others related to Gazebo and ROS integration.
  • Dockerfile: A file that installs Gazebo (gz-sim), ROS Noetic (for Gazebo-ROS integration), and any other required dependencies.
  • Post Create Command: Automatically installs Gazebo after the container is created to streamline the setup process.

I’m also thinking about including support for GPU usage if someone wants to run more computationally expensive simulations.

Would this be a useful addition? Any suggestions or improvements? Does anyone see potential problems with this approach, or is there anything I might have missed in the setup?

@caguero @jrivero @azeey
Looking forward to your thoughts and feedback!

Hello mo_zaghloul:

Thanks for the proposal, I think it is a good idea to have a somehow having a templated proposal so people can setup easily the dev-containers and CodeSpaces for their projects using Gazebo and Gazebo with ROS.

Other projects and/or work in this area done before:

Supporting GPU / non GPU setups is indeed a really nice to have feature.

Thanks for the feedback! I checked out @athackst and @ruffsl’s work—really impressive!

I’d like to move forward with this, but I want to clarify a few points first:
1. Does a gz-sim Dev Container already exist, or should I work on creating one?

2. Clarifying the Proposal Template: Could you elaborate on what you meant by a templated proposal? Are we aiming for a general Gazebo + ROS template (similar to the ROSCon 2023 talk), or something more specific to gz-sim?

3. If a gz-sim Dev Container doesn’t exist, I’d like to propose a PR to contribute one, following best practices from the ROSCon 2023 talk. Planned features include:
• Dockerfile + devcontainer.json
• Pre-installed tools (VS Code extensions, CMake, colcon, etc.)
• Optional GPU support

Looking forward to your guidance before proceeding with a PR. Thanks!

Most of this should exist between GitHub - athackst/dockerfiles: Dockerfiles I use for development and GitHub - athackst/vscode_ros2_workspace: A template for using VSCode as an IDE for ROS2 development.

You just have to point the dockerfile in .devcontainer to one of the simulation ones.

1 Like