{"id":21702438,"url":"https://github.com/2b-t/docker-for-robotics","last_synced_at":"2025-04-13T04:16:45.164Z","repository":{"id":117183905,"uuid":"597701828","full_name":"2b-t/docker-for-robotics","owner":"2b-t","description":"Collection of best practices for working with Docker/Docker-Compose and the Robot Operating System (ROS/ROS 2) in simulation as well as with hardware and real-time requirements","archived":false,"fork":false,"pushed_at":"2025-03-27T01:19:53.000Z","size":4347,"stargazers_count":272,"open_issues_count":0,"forks_count":21,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-13T04:16:26.746Z","etag":null,"topics":["best-practice","best-practices","docker","docker-compose","dockerfile","graphic-user-interface","gui","guide","guidelines","network","real-time","robot","robot-operating-system","robotics","ros","ros-noetic","ros2","ros2-humble","tutorial","wsl2"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2b-t.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-05T11:31:22.000Z","updated_at":"2025-04-12T17:19:39.000Z","dependencies_parsed_at":"2023-11-26T02:24:20.024Z","dependency_job_id":"36189807-c45a-42df-9931-e76715ef8de2","html_url":"https://github.com/2b-t/docker-for-robotics","commit_stats":{"total_commits":105,"total_committers":1,"mean_commits":105.0,"dds":0.0,"last_synced_commit":"11f4da0a7a6d1a1f32cbde940379214d7f991949"},"previous_names":["2b-t/docker-for-robotics"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2b-t%2Fdocker-for-robotics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2b-t%2Fdocker-for-robotics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2b-t%2Fdocker-for-robotics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2b-t%2Fdocker-for-robotics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2b-t","download_url":"https://codeload.github.com/2b-t/docker-for-robotics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248661715,"owners_count":21141451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practice","best-practices","docker","docker-compose","dockerfile","graphic-user-interface","gui","guide","guidelines","network","real-time","robot","robot-operating-system","robotics","ros","ros-noetic","ros2","ros2-humble","tutorial","wsl2"],"created_at":"2024-11-25T21:15:36.756Z","updated_at":"2025-04-13T04:16:45.141Z","avatar_url":"https://github.com/2b-t.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker for Robotics with the Robot Operating System (ROS/ROS 2)\n\nAuthor: [Tobit Flatscher](https://github.com/2b-t) (2021 - 2024)\n\n[![ROS Docker](https://github.com/2b-t/docker-for-robotics/actions/workflows/build-ros.yml/badge.svg)](https://github.com/2b-t/docker-for-robotics/actions/workflows/build-ros.yml) [![ROS 2 Docker](https://github.com/2b-t/docker-for-robotics/actions/workflows/build-ros2.yml/badge.svg?branch=main)](https://github.com/2b-t/docker-for-robotics/actions/workflows/build-ros2.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\n\n## Overview\n\nThis guide discusses best practices for **robotics development with the [Robot Operating System (ROS/ROS 2)](https://www.ros.org/) and Docker/Docker-Compose** on **Linux** as well as **Windows** operating systems. This includes displaying **graphic user interfaces**, working with hardware, **real-time capable code** and the **network set-up** for multiple machines. Additionally it walks you through the **set-up with Visual Studio Code**.\n\nThis repository used to be part of [another guide](https://github.com/2b-t/docker-realtime) I have written on Docker and real-time applications. As the general Docker and ROS part has now become quite lengthy, I have decided to extract it and create a repository of its own for it.\n\n| ![Docker on Ubuntu](./media/ubuntu_jammy_affordance_templates.png) | ![Docker on Windows](./media/windows10_affordance_templates.png) |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| ROS Indigo running from a Docker container on Ubuntu 22.04   | ROS Indigo running from a Docker container on Windows 10 with WSL2 |\n\n\n\n## Structure of this guide\n\nThis guide is structured in the following chapters:\n\n- [**Motivation**](./doc/Motivation.md): Tries to give you good reasons for why you should use Docker as a company or research institution.\n- [**Introduction to Docker and Docker-Compose**](./doc/Introduction.md): Introduces fundamental concepts of container-based development.\n- [**Set-up with Visual Studio Code**](./doc/VisualStudioCodeSetup.md): Walks you through the set-up of containers with Visual Studio Code.\n- [**Graphic user interfaces and Docker**](./doc/Gui.md): Discusses the challenges of using Docker with graphic user interfaces and presents workarounds.\n- [**ROS and Docker**](./doc/Ros.md): Discusses best-practices for Docker and ROS/ROS 2.\n- [**Docker on Windows**](./doc/Windows.md): Running Docker on Windows in WSL2 with graphic user interfaces.\n- [**Working with hardware**](./doc/WorkingWithHardware.md): Discusses best-practices when working with hardware.\n\nThe folder [**`examples/`**](./examples) contains different ROS and ROS 2 examples (in simulation as well as with hardware access) while the folder  [**`templates/`**](./templates) provides templates for ROS and ROS 2 that you can build your own workspace off. This guide is further extended by an external guide on **Docker for real-time applications with `PREEMPT_RT`** that can be found [here](https://github.com/2b-t/docker-realtime).\n\n \n\n## Get a copy\n\nThis workspace contains several other repositories as submodules. Therefore please clone it with the following command:\n\n```bash\n$ git clone --recurse-submodules https://github.com/2b-t/docker-for-robotics.git\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2b-t%2Fdocker-for-robotics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2b-t%2Fdocker-for-robotics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2b-t%2Fdocker-for-robotics/lists"}