Skip to content
New issue

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

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

Already on GitHub? # to your account

Silent Ubuntu version switch in deployed images #104

Closed
cheffe112 opened this issue Nov 10, 2017 · 3 comments
Closed

Silent Ubuntu version switch in deployed images #104

cheffe112 opened this issue Nov 10, 2017 · 3 comments

Comments

@cheffe112
Copy link

A couple days ago, the libgazebo7 container (and dependent ones) was silently switched to Ubuntu Xenial from Trusty in commit 06580e3 @ruffsl.
This broke the whole setup which is used in a multi-partner EU project and our partners went berserk because they weren't able to build anything anymore due to dependency issues.

I'd propose to refrain from switching Ubuntu versions in known containers, instead create some libgazebo7-xenial overlay or something. Breaking the "dependency API" generally sounds like a bad idea to me.

@ruffsl
Copy link
Member

ruffsl commented Nov 10, 2017

This migration and rational was ticketed before here: #92
And generally announced for feedback to the official gazebo community before merging:
https://community.gazebosim.org/t/migrating-gazebo-7-docker-tags-to-xenial-base-image/27/1

The justification being that the Gazebo7 tags were being built from a base image that would have reached EOL before Gazebo7's own EOL date. So the default libgazebo7 tag needed to be corrected eventually before trusty builds ceased on dockerhub in order to continue support for Gazebo7 over its release cycle.

Apologies for breaking any Dockerfiles in the quest to fix others #84 . I've been able to avoid changing base dependencies for all our ros tag migrations, but was unable to do so in this case due to the conflicting EOL between Trusty and Gazebo7. That being said we could provide additional os code mane overlay tags for gazebo like we do for ros, as our refactored docker image repository structure now supports this.

In the short term, you could pull the old version of libgazebo7 tag before the migration:

docker pull gazebo@sha256:<older_libgazebo7_shasha256_here>

See here for more details:

In the long term, perhaps we can create a dedicated category on gazebo community's discourse to broadcast maintenance announcements that users can monitor.

@ruffsl
Copy link
Member

ruffsl commented Nov 10, 2017

Another alternative if your require custom dependencies would be to fork the current images and adjust the FROM field in the relevant Dockerfile to point to whatever image you need, then connect it to an automated Docker Hub repo for your own organization.

We have a number of users who do just that to easily build ROS or Gazebo images with cuda libraries pre installed for nvidia-docker, custom OpenCV builds, or provide alteritive keyservers/proxies setings to build the Dockerfiles from behine corpate firewalls.

One caveat though is only the official library repos seem to properly handle nested tag builds within a single repo, as its dedicated build scaffolding differs from a traditional docker hub automated docker repo.

@cheffe112
Copy link
Author

Thanks for the detailed explanation. However, we've dumped the Gazebo images meanwhile and now use the ROS Trusty images while manually installing Gazebo afterwards in the Dockerfiles. Setting up Docker Hub is too much additional work although I have to admit that this is probably the cleanest way.

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

No branches or pull requests

2 participants