Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate Docker resources for Ignition #506

Open
adlarkin opened this issue Sep 2, 2021 · 0 comments
Open

Consolidate Docker resources for Ignition #506

adlarkin opened this issue Sep 2, 2021 · 0 comments

Comments

@adlarkin
Copy link

adlarkin commented Sep 2, 2021

Over time, we have attempted to create Ignition Docker images/tools that either provides users with an environment that has Ignition installed, or provides users with an environment that can be used for developing Ignition packages. As a result, we currently have various tools located in different locations, making it hard for users to know where to find these tools. Our documentation for these tools is also lacking, making it hard for users to know what to use once they have found where these resources exist. To make things even worse, some of the resources that do exist do not work (for example: see gazebosim/gz-sim#1004), probably due to the fact that it's difficult for maintainers to remember what needs to be updated when changes are made to Ignition packages.

It would be useful to review all existing Docker resources and figure out how they can be consolidated into one place. In the process of doing this review, we also may find that some resources can be deleted, and that some resources/functionality may be missing. For context, here are the Docker resources that currently exist for Ignition (if I missed any, feel free to modify this list or let me know):

  1. Docker directory in ign-gazebo, which provides Dockerfiles that install/configure Ignition stable binaries or Ignition nightly binaries: https://github.com/ignitionrobotics/ign-gazebo/tree/ign-gazebo5/docker
  2. The ign-docker-env tool, which is meant to provide an environment that can be used for running Ignition binaries or developing Ignition packages: https://github.com/ignition-tooling/gzdev#ign-docker-env (this tool was introduced in the December 2020 gazebo community meeting: https://www.youtube.com/watch?v=WcLj78PyrGk&t=900s. This tool also makes use of https://github.com/adlarkin/ign-rocker)
  3. CI-based Docker tools, which may be useful for local usage of Ignition:
  4. There's currently a PR open to add Ignition Docker images to the osrf/docker_images repository: WIP add Ignition osrf/docker_images#378

I think that a reasonable end result would be to have Ignition Docker images (and corresponding documentation) hosted on Dockerhub. It seems like option 4 in the list above is a step in the right direction. It is important to note that there are various challenges/maintenance overhead introduced when providing users with Docker images. The challenges I can think of are (and again, feel free to let me know if this list is missing anything):

  1. How can we create automated tests for the Docker images so that we ensure they are always working and up-to-date?
  2. How do we provide users with GUI support?

Challenge 2 is a difficult one to answer due to various GPU cards being used by the community. For nvidia cards, one option is to use https://github.com/NVIDIA/nvidia-docker and base images such as https://registry.hub.docker.com/r/nvidia/opengl# to provide OpenGL support on nvidia cards. However, this is not a valid solution for those with integrated graphics or AMD GPUs. In order to handle the difficulties that arise from requiring display/GUI support in Docker, https://github.com/osrf/rocker can be used. I'm not sure if this solves challenge 2 for us or not (it might, but I'd like to hear other people's opinion about this).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant