{"id":13799027,"url":"https://github.com/micro-ROS/docker","last_synced_at":"2025-05-13T06:31:59.794Z","repository":{"id":39866143,"uuid":"122317241","full_name":"micro-ROS/docker","owner":"micro-ROS","description":"Docker-related material to setup, configure and develop with micro-ROS hardware.","archived":false,"fork":false,"pushed_at":"2024-06-03T07:13:05.000Z","size":309,"stargazers_count":47,"open_issues_count":7,"forks_count":27,"subscribers_count":7,"default_branch":"jazzy","last_synced_at":"2024-08-04T00:03:35.800Z","etag":null,"topics":["dds-xrce","docker","docker-automated","embedded","example-code","linux","micro-ros","olimex","ros2","stm32","toolchain"],"latest_commit_sha":null,"homepage":"https://micro-ros.github.io","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micro-ROS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2018-02-21T09:39:54.000Z","updated_at":"2024-06-03T07:12:07.000Z","dependencies_parsed_at":"2024-01-02T23:00:13.994Z","dependency_job_id":"58b00aa7-e54e-4219-b275-39c9a5448362","html_url":"https://github.com/micro-ROS/docker","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fdocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fdocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fdocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fdocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micro-ROS","download_url":"https://codeload.github.com/micro-ROS/docker/tar.gz/refs/heads/jazzy","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225183804,"owners_count":17434187,"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":["dds-xrce","docker","docker-automated","embedded","example-code","linux","micro-ros","olimex","ros2","stm32","toolchain"],"created_at":"2024-08-04T00:00:57.985Z","updated_at":"2024-11-18T13:31:48.349Z","avatar_url":"https://github.com/micro-ROS.png","language":"Dockerfile","readme":"# micro-ROS Dockers\n\nThis repository contains Docker-related material aimed at setting up, configuring and developing a [micro-ROS](https://microros.github.io/)-based application.\n\nThis set of Dockerfiles provides ready-to-use environments to easily execute micro-ROS examples in your host machine, as well as to use the standalone [micro-ROS build system](https://github.com/micro-ROS/micro_ros_setup).\nIn addition, two images are provided that allow using micro-ROS as an external library, both in [ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component/tree/main/docker).\n\nThe Docker images can be found at [dockerhub](https://hub.docker.com/u/microros).\n\nThe available images are listed below:\n\n| Image                            | Description                                                                                                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Status |\n| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| base                             | Base image with a ROS 2 Jazzy installation + micro-ROS specific build system tools. Used as base of any other micro-ROS image |                                                                                                                                                                         [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/base.svg?logo=docker)](https://hub.docker.com/r/microros/base/)[![Compare Images](https://images.microbadger.com/badges/image/microros/base.svg)](https://microbadger.com/images/microros/base) |\n| micro-ros-agent                  | Image containing a pre-compiled micro-ROS-Agent, ready to use as a standalone application                                       |                                                                                                       [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-agent.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-agent/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-agent.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-agent/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-agent.svg)](https://microbadger.com/images/microros/micro-ros-agent) |\n| micro-ros-demos                  | Contains pre-compiled micro-ROS demo applications, ready to use to get a taste of micro-ROS capabilities                        |                                                                                                       [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-demos.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-demos/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-demos.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-demos/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-demos.svg)](https://microbadger.com/images/microros/micro-ros-demos) |\n| micro_ros_static_library_builder | Allows to use a pre-compiled micro-ROS library to develop applications in external environments                                 | [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro_ros_static_library_builder.svg?logo=docker)](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro_ros_static_library_builder.svg?logo=docker)](https://hub.docker.com/r/microros/micro_ros_static_library_builder/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro_ros_static_library_builder.svg)](https://microbadger.com/images/microros/micro_ros_static_library_builder) |\n| micro-ros-olimex-nuttx           | Contains a ready to flash example for  Olimex STM32 E407                                                                        |                                                             [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/micro-ros-olimex-nuttx.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/micro-ros-olimex-nuttx.svg?logo=docker)](https://hub.docker.com/r/microros/micro-ros-olimex-nuttx/)[![Compare Images](https://images.microbadger.com/badges/image/microros/micro-ros-olimex-nuttx.svg)](https://microbadger.com/images/microros/micro-ros-olimex-nuttx) |\n| esp-idf-microros                 | Allows to use micro-ROS as a component of the ESP-IDF build system                                                              |                                                                                                 [![Docker Automated build](https://img.shields.io/docker/cloud/automated/microros/esp-idf-microros.svg?logo=docker)](https://hub.docker.com/r/microros/esp-idf-microros/)[![Docker Build Status](https://img.shields.io/docker/cloud/build/microros/esp-idf-microros.svg?logo=docker)](https://hub.docker.com/r/microros/esp-idf-microros/)[![Compare Images](https://images.microbadger.com/badges/image/microros/esp-idf-microros.svg)](https://microbadger.com/images/microros/esp-idf-microros) |\n\n![](http://www.plantuml.com/plantuml/svg/VP71JiCm38RlUGfhzsXtn65lW0GFC6M9kreqpMHdWaeyF6v26b3HRlRt_wxzDoV9ZlCzJiQC510yiP-mrXXlUO68yO8incJA4q8apyc-lhn1IFuT6IYwAmgCXEpOZuinVd8YS42vCOhGSAGm7C09RAHPECdJa3wNece3JIXR51mlJh1RrcvdgHTfPVMGENTtQH_O0yRV-qlxl_sirTbnkDES-i0Fs8reJAkHRGDzGYaOemYUlsn87xCjaHfXkexPRjzTfMwiQVwoUlBsMxjG5vrm3klJVWC0)\n\n## Pre-requisites\n\nYou need to have **Docker** in your system.\nFor installing Docker, refer to the official documentation at https://www.docker.com/.\n\n## Usage\n\nTo get an image, use the `docker pull` command:\n\n* e.g. `docker pull microros/base`\n\nYou can select the preferred tag by appending `:tag` to the image name\n\n* e.g. `docker pull microros/base:jazzy`\n\nOnce you have the image locally, type `docker run` to start it. It is not mandatory, although usually useful, to launch your containers using the `--rm` and `--net=host` flags:\n\n* e.g. `docker run -it --rm --net=host microros/micro-ros-agent:jazzy`\n\n`--rm` makes sure that the docker image will be removed after exiting.\n`--net=host` provides the container with the same network access as the host.\n`-it` allocates a pseudo-TTY for you and keeps stdin listening.\nAnother used command is `-v` to map local files with docker container ones.\n`-v` is useful in case you may want to flash boards from within a Docker container.\n\n#### base image\n\nIt is the base for the rest of the containers.\nIt contains the necessary micro-ROS setup tools and dependencies.\nFrom this image, you can start any development targeting micro-ROS.\n\n\n#### micro-ros-agent\n\nThis image is meant to be used as a stand-alone application.\nIt includes the installation of the ROS 2 version selected by the tag selected, together with a micro-ROS Agent.\nThe entry point of this image is directly the micro-ROS Agent, so upon execution of `docker run` you will be facing the micro-ROS Agent command line input. Running:\n\n* e.g. `docker run -it --net=host microros/micro-ros-agent:jazzy udp4 -p 9999`\n\nwill start a micro-ROS Agent listening to UDP messages on port 9999.\n\n#### micro-ros-demos\n\n`micro-ros-demos` is one of the example images.\nWith this image, you can launch example applications using micro-ROS (compiled for Linux machines).\nThis image entry point has a ROS 2 environment set up with micro-ROS examples.\nYou can run regular ROS 2 tools to launch the examples.\n\n* eg: `docker run -it --net=host microros/micro-ros-demos bash`\n\nThe currently available examples are listed [here](https://github.com/micro-ROS/micro-ROS-demos/rclc).\n\n#### micro-ros-olimex-nuttx (unmaintained)\n\nThis image provides you with a ready-to-flash firmware for Olimex-STM32-E407 boards with demos included.\nTo be able to flash, you need to map your devices to the Docker container as follows:\n\n* e.g. `docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb microros/micro-ros-olimex-nuttx:jazzy`\n\nOnce inside the container, you can flash the board by running `scripts/flash.sh` from the `firmware/NuttX` directory.\n\nThere you can find a publisher and a subscriber examples.\nBoth examples use serial transport to communicate with a micro-ROS Agent, so you should start an Agent with the same transport (You can use the `micro-ros-agent` image to do so).\nOnce a Client-Agent communication is established you can use ROS 2 tools to view the publications from the Olimex or to publish messages to it.\n\n#### micro_ros_static_library_builder\n\nThe `micro_ros_static_library_builder` docker image provides you with a set of include files and pre-compiled micro-ROS libraries to develop your micro-ROS application within the Arduino IDE environment.\nTo be able to use it, use the following command to instantiate a container of this image:\n\n* e.g. `docker run -it -v $(pwd):/arduino_project --net=host microros/micro_ros_static_library_builder:jazzy`.\n\nNote that folders added to `extras/library_generation/extra_packages` and entries added to `extras/library_generation/extra_packages/extra_packages.repos` will be taken into account by this build system.\n\n#### esp-idf-microros\n\nThis Docker image allows you to use micro-ROS as a component of the ESP-IDF build system.\n\nTo use it:\n\n* e.g. `docker run -it --user espidf --volume=\"/etc/timezone:/etc/timezone:ro\" -v  $(pwd):/micro_ros_espidf_component -v  /dev:/dev --privileged --workdir /micro_ros_espidf_component microros/esp-idf-microros:latest /bin/bash\"`\n\nThen, you can navigate to your example aplications and build it using the ESP IDF buildtool system script, `idf.py menuconfig/build/flash/monitor`.\n\n## Automated builds\n\nThese Dockerfiles are used for automatically creating images on Docker Hub.\nThese builds are tagged with the ROS 2 version they will be compatible with: e.g. foxy, rolling...\nThe latest tag will always correspond to the latest release of ROS 2.\n\nThese automatic builds have a direct relationship with the content of the micro-ROS repositories:\n\n | Image                            | Triggers                                                                                           |\n | -------------------------------- | -------------------------------------------------------------------------------------------------- |\n | base                             | https://github.com/micro-ROS/micro-ROS-build                                                       |\n | micro-ros-agent                  | https://github.com/micro-ROS/micro-ROS-Agent \u003cbr\u003e https://github.com/eProsima/Micro-XRCE-DDS-Agent |\n | micro-ros-demos                  | https://github.com/micro-ROS/micro-ROS-demos                                                       |\n | micro_ros_static_library_builder | https://github.com/micro-ROS/micro_ros_arduino                                                     |\n | esp-idf-microros                 | https://github.com/micro-ROS/micro_ros_espidf_component                                            |\n\nApart from GitHub repositories changes, a build can be triggered whenever the base image is updated on Docker Hub.\nBase images are specified with the `FROM:` directive in the Dockerfile.\n\n## Purpose of the Project\n\nThis software is not ready for production use. It has neither been developed nor\ntested for a specific use case. However, the license conditions of the\napplicable Open Source licenses allow you to adapt the software to your needs.\nBefore using it in a safety relevant setting, make sure that the software\nfulfills your requirements and adjust it according to any applicable safety\nstandards, e.g., ISO 26262.\n\n## License\n\nThis repository is open-sourced under the Apache-2.0 license. See the\n[LICENSE](LICENSE) file for details.\n\nFor a list of other open-source components included in this repository,\nsee the file [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\n## Known Issues/Limitations\n\nThere are no known limitations.\n\nIf you find issues, [please report them](https://github.com/micro-ROS/micro_ros_setup/issues).\n","funding_links":[],"categories":["Packages"],"sub_categories":["Containerization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ROS%2Fdocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicro-ROS%2Fdocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ROS%2Fdocker/lists"}