{"user":"alex031544","name":"fastrtps","namespace":"alex031544","repository_type":"image","status":1,"status_description":"active","description":"Build and Run eProsima FastRTPS","is_private":false,"is_automated":false,"star_count":0,"pull_count":799,"last_updated":"2020-09-01T19:04:52.734311Z","last_modified":"2024-10-16T13:48:34.145251Z","date_registered":"2020-03-28T23:12:47.702459Z","collaborator_count":0,"affiliation":null,"hub_user":"alex031544","has_starred":false,"full_description":"# FastRTPS Docker implementation\n\n[![Image version information][ver_img_v2.0.1]](https://microbadger.com/images/alex031544/fastrtps)\n[![Docker pulls](https://img.shields.io/docker/pulls/alex031544/fastrtps.svg?style=plastic)](https://registry.hub.docker.com/v2/repositories/alex031544/fastrtps/)\n[![Docker Stars](https://img.shields.io/docker/stars/alex031544/fastrtps.svg?style=plastic)](https://registry.hub.docker.com/v2/repositories/alex031544/fastrtps/stars/count/)\n[![Runtime Image Size information](https://img.shields.io/docker/image-size/alex031544/fastrtps/latest) for Runtime](https://microbadger.com/images/alex031544/fastrtps)\n[![Image Size information](https://img.shields.io/docker/image-size/alex031544/fastrtps/latest-dev) for Development](https://microbadger.com/images/alex031544/fastrtps)\n\n\nBelow are the following sections:\n\n1. __Brief Image Overview__ - A brief overview of the images provided\n2. __The images in detail__ - The next section describes this images more detailed.\n3. __How To__ - This section demonstrates some use cases.\n4. __Tag/Version Overview__ - Provides a full overview of the images provided and their related versions.\n\n\n## Brief Image Overview\n\nProvided are 3 images, which are differently tagged:\n\n1. `\u003cversion\u003e`:  \n    This is the *runtime* image. This image concludes only the libraries needed to run a FastRTPS application.\n\n2. `\u003cversion\u003e-dev`:  \n    Use this image for developing and building FastRTPS applications.\n\n3. `\u003cversion\u003e-example`:  \n    This image contains the eProsimas examples shipped with FastRTPS ready to use.\n\nWhere `\u003cversion\u003e` can be either `latest` or the version tag of FastRTPS (`v*.*.*`).\n\n\n## The images in detail\n\n### Runtime image\n\nThe runtime image based on Debian slim comprises runtime related libraries:\n- libtinyxml2-6\n- libssl1.1\n- /usr/local/lib/libfastcdr.so\n- /usr/local/lib/libfastrtps.so\n\nThus the image is as small as can be and well suited for final applications and their deployment. Only copy the binaries of an already build FastRTPS application into this image and set either `CMD` or `ENTRYPOINT` optionally.\n\n### Development image\n\nThe development image based on Debian slim comprises all header, libraries and tools to build FastRTPS applications or generate code:\n- [eProsima FastRTPS](https://www.eprosima.com/index.php/products-all/eprosima-fast-rtps)\n- [eProsima FastCDR](https://github.com/eProsima/Fast-CDR)\n- [eProsima FastRTPSGen](https://eprosima-fast-rtps.readthedocs.io/en/latest/geninfo.html)\n- [Foonathan memory](https://foonathan.net/memory/)\n- [GIT](https://git-scm.com)\n- [GCC](https://gcc.gnu.org),\n- [G++](https://www.cprogramming.com/g++.html)\n- [CMake](https://cmake.org)\n- [Colcon](https://colcon.readthedocs.io/en/released/)\n- [Gradle](https://gradle.org)\n- [openJDK, openJRE](https://openjdk.java.net)\n\nThus the image is large and well suited for the development of applications but not their deployment. Use this image as *builder* in a multistage build, to generate code from IDL files using FastRTPSGen or build an application.\n\nThe related paths are:\n- FastRTPS\n  - */usr/local/include/fastrtps*\n  - */usr/local/lib/libfastrtps.so*\n  - */usr/local/share/fastrtps*\n- FastCDR\n  - */usr/local/include/fastcdr*\n  - */usr/local/lib/libfastcdr.so*\n  - */usr/local/share/fastcdr*\n- FastRTPSGen\n  - /usr/local/share/fastrtpsgen/\n- Foonathan memory\n  - */usr/local/bin/nodesize_dbg*\n  - */usr/local/include/foonathan_memory*\n  - */usr/local/lib/foonathan_memory*\n  - */usr/local/lib/libfoonathan_memory-?.a*\n  - */usr/local/share/foonathan_memory*\n  - */usr/local/share/foonathan_memory_vendor*\n\nAs the path to *fastrtpsgen* is set in `PATH`, `fastrtpsgen` can directly be used within the image.\n\n### Examples image\n\nThe examples image based on the runtime image and comprises the examples which eProsima ships together with FastRTPS. As the binaries are built in a development container, this is a good demonstration how to do it and that all should work well. The examples are installed to:\n\n```\n/usr/local/examples/C++/\n├── Benchmark\n│   └── bin\n│       └── Benchmark\n├── ClientServerTest\n│   └── bin\n│       └── ClientServerTest\n├── DeadlineQoSExample\n│   └── bin\n│       └── DeadlineQoSExample\n├── DisablePositiveACKsQoS\n│   └── bin\n│       └── DisablePositiveACKsQoS\n├── DynamicHelloWorldExample\n│   └── bin\n│       └── DynamicHelloWorldExample\n├── FilteringExample\n│   └── bin\n│       └── FilteringExample\n├── FlowControlExample\n│   └── bin\n│       └── FlowControlExample\n├── HelloWorldExample\n│   └── bin\n│       ├── HelloWorldExample\n│       └── StaticHelloWorldExample\n├── HelloWorldExampleTCP\n│   └── bin\n│       └── HelloWorldExampleTCP\n├── LifespanQoSExample\n│   └── bin\n│       └── LifespanQoSExample\n├── LivelinessQoS\n│   └── bin\n│       └── LivelinessQoS\n├── OwnershipStrengthQoSExample\n│   └── bin\n│       └── OwnershipStrengthQoSExample\n├── RTPSTest_as_socket\n│   └── bin\n│       └── RTPSTest_as_socket\n├── RTPSTest_persistent\n│   └── bin\n│       └── RTPSTest_persistent\n├── RTPSTest_registered\n│   └── bin\n│       └── RTPSTest_registered\n├── UseCaseDemonstrator\n│   └── bin\n│       ├── UseCasePublisher\n│       ├── UseCaseSubscriber\n│       ├── historykind\n│       ├── keys\n│       ├── latejoiners\n│       ├── sampleconfig_controller\n│       ├── sampleconfig_events\n│       └── sampleconfig_multimedia\n├── UserDefinedTransportExample\n│   └── bin\n│       └── UserDefinedTransportExample\n└── XMLProfilesExample\n    └── bin\n        └── XMLProfiles\n```\n\n\n## How To\n\n### perform a multistage build?\n\ngo to [How to perform a multistage build?](https://github.com/Alex031544/docker_fastrtps/tree/master/examples/multiStageBuild/)\n\n### generate code from IDL files?\n\ngo to [How to generate code from IDL files?](https://github.com/Alex031544/docker_fastrtps/tree/master/examples/idlCodeGen/)\n\n### to use the development image to build only.\n\n### run the examples shipped with ePraosimas FastRTPS?\n\nTo run the *HelloWorldExample* open a terminal, start a *subscriber*:\n```\ndocker run --rm -it alex031544/fastrtps:latest-example /usr/local/examples/C++/HelloWorldExample/bin/HelloWorldExample subscriber\n```\nand open a second terminal and start a *publisher*:\n```\ndocker run --rm -it alex031544/fastrtps:latest-example /usr/local/examples/C++/HelloWorldExample/bin/HelloWorldExample publisher\n```\nThe complete output shall than look like this on the first terminal:\n```\n$ docker run --rm -it alex031544/fastrtps:latest-example /usr/local/examples/C++/HelloWorldExample/bin/HelloWorldExample subscriber\nUnable to find image 'alex031544/fastrtps:latest-example' locally\nlatest-example: Pulling from alex031544/fastrtps\n68ced04f60ab: Pull complete\nb7ab2a749932: Pull complete\n66a04b1fec19: Pull complete\n7e17a648192c: Pull complete\nc0b16ddf6abc: Pull complete\nDigest: sha256:0b212faa46b54017f817e82e4a8a09f6d66cb5fb793b0f0897b7c3c60147ba74\nStatus: Downloaded newer image for alex031544/fastrtps:latest-example\nStarting\nSubscriber running. Please press enter to stop the Subscriber\nSubscriber matched\nMessage HelloWorld 1 RECEIVED\nMessage HelloWorld 2 RECEIVED\nMessage HelloWorld 3 RECEIVED\nMessage HelloWorld 4 RECEIVED\nMessage HelloWorld 5 RECEIVED\nMessage HelloWorld 6 RECEIVED\nMessage HelloWorld 7 RECEIVED\nMessage HelloWorld 8 RECEIVED\nMessage HelloWorld 9 RECEIVED\nMessage HelloWorld 10 RECEIVED\nSubscriber unmatched\n```\nand the second terminal:\n```\n$ docker run --rm -it alex031544/fastrtps:latest-example /usr/local/examples/C++/HelloWorldExample/bin/HelloWorldExample publisher\nStarting\nPublisher running 10 samples.\nPublisher matched\nMessage: HelloWorld with index: 1 SENT\nMessage: HelloWorld with index: 2 SENT\nMessage: HelloWorld with index: 3 SENT\nMessage: HelloWorld with index: 4 SENT\nMessage: HelloWorld with index: 5 SENT\nMessage: HelloWorld with index: 6 SENT\nMessage: HelloWorld with index: 7 SENT\nMessage: HelloWorld with index: 8 SENT\nMessage: HelloWorld with index: 9 SENT\nMessage: HelloWorld with index: 10 SENT\n```\n\n## Tag/Version overview\n\n| Runtime Images                                                                 | Development Images                                                                         | Example Images                                                                                         | Base OS                               | [FastRTPS][fastrtps_git_lnk]    | [FastCDR][fastcdr_git_lnk]     | [FastRTPSGen][fastrtpsgen_git_lnk] |\n| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |------------------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------- | ------------------------------ | ---------------------------------- |\n| [![][ver_img_latest]]() [![][size_img_latest]]() [![][layers_img_latest]]()    | [![][ver_img_latest-dev]]() [![][size_img_latest-dev]]() [![][layers_img_latest-dev]]()    | [![][ver_img_latest-example]]() [![][size_img_latest-example]]() [![][layers_img_latest-example]]()    | [Debian 10-slim][os_hub_deb] | [v2.0.1][fastrtps_git_v2.0.1] | [v1.0.15][fastcdr_git_v1.0.15] | [v1.0.4][fastrtpsgen_git_v1.0.4]   |\n| [![][ver_img_v2.0.1]]() [![][size_img_v2.0.1]]() [![][layers_img_v2.0.1]]() | [![][ver_img_v2.0.1-dev]]() [![][size_img_v2.0.1-dev]]() [![][layers_img_v2.0.1-dev]]() | [![][ver_img_v2.0.1-example]]() [![][size_img_v2.0.1-example]]() [![][layers_img_v2.0.1-example]]() | [Debian 10-slim][os_hub_deb] | [v2.0.1][fastrtps_git_v2.0.1] | [v1.0.15][fastcdr_git_v1.0.15] | [v1.0.4][fastrtpsgen_git_v1.0.4]   |\n| [![][ver_img_v2.0.0]]() [![][size_img_v2.0.0]]() [![][layers_img_v2.0.0]]() | [![][ver_img_v2.0.0-dev]]() [![][size_img_v2.0.0-dev]]() [![][layers_img_v2.0.0-dev]]() | [![][ver_img_v2.0.0-example]]() [![][size_img_v2.0.0-example]]() [![][layers_img_v2.0.0-example]]() | [Debian 10-slim][os_hub_deb] | [v2.0.0][fastrtps_git_v2.0.0] | [v1.0.14][fastcdr_git_v1.0.14] | [v1.0.4][fastrtpsgen_git_v1.0.4]   |\n| [![][ver_img_v1.10.0]]() [![][size_img_v1.10.0]]() [![][layers_img_v1.10.0]]() | [![][ver_img_v1.10.0-dev]]() [![][size_img_v1.10.0-dev]]() [![][layers_img_v1.10.0-dev]]() | [![][ver_img_v1.10.0-example]]() [![][size_img_v1.10.0-example]]() [![][layers_img_v1.10.0-example]]() | [Debian 10-slim][os_hub_deb] | [v1.10.0][fastrtps_git_v1.10.0] | [v1.0.13][fastcdr_git_v1.0.13] | [v1.0.4][fastrtpsgen_git_v1.0.4]   |\n| [![][ver_img_v1.9.4]]() [![][size_img_v1.9.4]]() [![][layers_img_v1.9.4]]()    | [![][ver_img_v1.9.4-dev]]() [![][size_img_v1.9.4-dev]]() [![][layers_img_v1.9.4-dev]]()    | [![][ver_img_v1.9.4-example]]() [![][size_img_v1.9.4-example]]() [![][layers_img_v1.9.4-example]]()    | [Debian 10-slim][os_hub_deb] | [v1.9.4][fastrtps_git_v1.9.4]   | [v1.0.13][fastcdr_git_v1.0.13] | [v1.0.3][fastrtpsgen_git_v1.0.3]   |\n\n\n[ver_img_latest]: https://images.microbadger.com/badges/version/alex031544/fastrtps:latest.svg\n[size_img_latest]: https://img.shields.io/docker/image-size/alex031544/fastrtps/latest\n[layers_img_latest]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/latest\n\n[ver_img_latest-dev]: https://images.microbadger.com/badges/version/alex031544/fastrtps:latest-dev.svg\n[size_img_latest-dev]: https://img.shields.io/docker/image-size/alex031544/fastrtps/latest-dev\n[layers_img_latest-dev]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/latest-dev\n\n[ver_img_latest-example]: https://images.microbadger.com/badges/version/alex031544/fastrtps:latest-example.svg\n[size_img_latest-example]: https://img.shields.io/docker/image-size/alex031544/fastrtps/latest-example\n[layers_img_latest-example]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/latest-example\n\n[ver_img_v2.0.1]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.1.svg\n[size_img_v2.0.1]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.1\n[layers_img_v2.0.1]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.1\n\n[ver_img_v2.0.1-dev]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.1-dev.svg\n[size_img_v2.0.1-dev]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.1-dev\n[layers_img_v2.0.1-dev]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.1-dev\n\n[ver_img_v2.0.1-example]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.1-example.svg\n[size_img_v2.0.1-example]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.1-example\n[layers_img_v2.0.1-example]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.1-example\n\n[ver_img_v2.0.0]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.0.svg\n[size_img_v2.0.0]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.0\n[layers_img_v2.0.0]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.0\n\n[ver_img_v2.0.0-dev]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.0-dev.svg\n[size_img_v2.0.0-dev]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.0-dev\n[layers_img_v2.0.0-dev]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.0-dev\n\n[ver_img_v2.0.0-example]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v2.0.0-example.svg\n[size_img_v2.0.0-example]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v2.0.0-example\n[layers_img_v2.0.0-example]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v2.0.0-example\n\n[ver_img_v1.10.0]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.10.0.svg\n[size_img_v1.10.0]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.10.0\n[layers_img_v1.10.0]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.10.0\n\n[ver_img_v1.10.0-dev]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.10.0-dev.svg\n[size_img_v1.10.0-dev]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.10.0-dev\n[layers_img_v1.10.0-dev]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.10.0-dev\n\n[ver_img_v1.10.0-example]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.10.0-example.svg\n[size_img_v1.10.0-example]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.10.0-example\n[layers_img_v1.10.0-example]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.10.0-example\n\n[ver_img_v1.9.4]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.9.4.svg\n[size_img_v1.9.4]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.9.4\n[layers_img_v1.9.4]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.9.4\n\n[ver_img_v1.9.4-dev]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.9.4-dev.svg\n[size_img_v1.9.4-dev]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.9.4-dev\n[layers_img_v1.9.4-dev]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.9.4-dev\n\n[ver_img_v1.9.4-example]: https://images.microbadger.com/badges/version/alex031544/fastrtps:v1.9.4-example.svg\n[size_img_v1.9.4-example]: https://img.shields.io/docker/image-size/alex031544/fastrtps/v1.9.4-example\n[layers_img_v1.9.4-example]: https://img.shields.io/microbadger/layers/alex031544/fastrtps/v1.9.4-example\n\n\n[os_hub_deb]: https://hub.docker.com/_/debian\n[os_ver_deb_10-slim]: https://images.microbadger.com/badges/version/debian:10-slim.svg\n\n[fastrtps_git_lnk]: https://github.com/eProsima/Fast-RTPS\n[fastrtps_git_v1.9.4]: https://github.com/eProsima/Fast-RTPS/releases/tag/v1.9.4\n[fastrtps_git_v1.10.0]: https://github.com/eProsima/Fast-RTPS/releases/tag/v1.10.0\n[fastrtps_git_v2.0.0]: https://github.com/eProsima/Fast-RTPS/releases/tag/v2.0.0\n[fastrtps_git_v2.0.1]: https://github.com/eProsima/Fast-RTPS/releases/tag/v2.0.1\n\n[fastcdr_git_lnk]: https://github.com/eProsima/Fast-CDR\n[fastcdr_git_v1.0.13]: https://github.com/eProsima/Fast-CDR/releases/tag/v1.0.13\n[fastcdr_git_v1.0.14]: https://github.com/eProsima/Fast-CDR/releases/tag/v1.0.14\n[fastcdr_git_v1.0.15]: https://github.com/eProsima/Fast-CDR/releases/tag/v1.0.15\n\n[fastrtpsgen_git_lnk]: https://github.com/eProsima/Fast-RTPS-Gen\n[fastrtpsgen_git_v1.0.3]: https://github.com/eProsima/Fast-RTPS-Gen/releases/tag/v1.0.3\n[fastrtpsgen_git_v1.0.4]: https://github.com/eProsima/Fast-RTPS-Gen/releases/tag/v1.0.4\n\n\n## References\n\n[see for further information](https://gitlab.com/Alex0315/code-examples/-/tree/master/FastRTPS/01_docker)\n\n\n## Contributions\n\nI highly appreciate any contributions to this project. As a short summary here is what you could do:\n\n- Improvements on documentation\n- File issues against the project\n- Open pull requests, for example\n  - add new version configurations\n  - add more examples\n\n\n## License\n\nAny directly written content in this repository is licensed under the *Apache-2.0*.\nSoftware parts that are produced during the image build and resulting docker images are of course a composition of components that probably carry their own licenses.\n","permissions":{"read":true,"write":false,"admin":false},"media_types":["application/vnd.docker.container.image.v1+json"],"content_types":["image"],"categories":[],"immutable_tags_settings":{"enabled":false,"rules":[".*"]},"storage_size":5412087426,"source":null}