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

Why do the Dockerfiles stipulate specific version numbers? #171

Closed
lag-linaro opened this issue Jul 11, 2018 · 4 comments
Closed

Why do the Dockerfiles stipulate specific version numbers? #171

lag-linaro opened this issue Jul 11, 2018 · 4 comments

Comments

@lag-linaro
Copy link

At the moment, version numbers for varying architectures are not in sync.

Taking Gazebo8 and Xenial as an example, ARM64 and ARMHF are currently on 8.0.0 and AMD64 and I386 are on 8.6.0. The Dockerfile for this combination stipulates 8.6.0, ensuring breakage when attempting to build images for architectures which should otherwise be supported.

@mikaelarguedas
Copy link
Contributor

thanks @lag-linaro for pointing this out.
The reason we pin the versions down is to ensure the images are rebuilt when a new version comes out (otherwise the cache is not busted and the images are not up to date).

The initial logic was developped for ROS packages where the versions are always in sync, and you are totally right, this doesnt apply to Gazebo and the logic should be changed to cover that case.

This seem like another good use case for either specifying exact version numbers on a per architecture basis (#112) or maintaining separate dockefiles per architecture (#115)

@ruffsl FYI

@ruffsl
Copy link
Member

ruffsl commented Jul 11, 2018

As @mikaelarguedas duly pointed out, this ensures we always have a reliable mechanism for breaking the build cache when bumping up the version. It also affords us a degree of repeatability and regulation of the exact release that goes into the official images, and thus a cautionary procedure we abide by:
https://github.com/docker-library/official-images#repeatability

Now that Docker Hub official libraries support multiarch:
https://github.com/docker-library/official-images#multiple-architectures

Its doable to extend gazebo image builds for more than just amd64. When I first ported the ROS1 images to multiarch I briefly thought about doing the same for gazebo as well, but wasn't sure if there would be any user demand to justify the extension.

@lag-linaro , may I inquire you use case or applications that necessitating containerised gazebo on arm?

@lag-linaro
Copy link
Author

@mikaelarguedas, @ruffsl, thank you for taking the time to explain why you pin exact versions to builds in your Dockerfile and for being receptive to multi-arch builds.

@ruffsl in answer to your question, I'm afraid I do not have anything exciting to tell you. As an integrator and ARM64v8 advocate/evangelist, I'm seeking to ensure that as many useful Docker Hub based projects are accessible to users of the latest hardware to be operated on the desktop and in the data centre. Essentially I am just the middleman. 😄

graugans pushed a commit to graugans/docker_images that referenced this issue Jul 19, 2018
Details why we have pinned to this specific version
please take a look at: osrf/docker_images#171

Signed-off-by: Christian Ege <[email protected]>
@ruffsl
Copy link
Member

ruffsl commented Jul 22, 2018

Tracking arm support for gazebo here: #173

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

3 participants