Announcing Docker Images for Legacy ROS releases

TL;DR: Docker Images for all Legacy ROS distros are now available at OSRF’s DockerHub profile! :whale:

Hello everyone,

For the 10th anniversary of ROS, @tfoote and I created docker images for legacy distros of ROS.
So, all previous EOL distros from boxturtle to hydro are now available from OSRF’s ros_legacy repo [1]:

docker run -it osrf/ros_legacy:boxturtle roscore

Because not all modern core metapackages preexisted legacy releases, the minimal install target is set to a roughly equivalent package, ros, that include most essential dependencies that you can build up from there.

Q: But why?

A: Because we could!

But in all seriousness, this should be beneficial for anyone who needs to research and run legacy ROS code from previous published literature or archives. Getting an old image of Ubuntu 10.04 to boot with a recent kernel for an m.2 drive, or spinning up an entire VM install to look into a driver package last released for cturtle is not something I’d ever like to spend much of my time on.

For example, after stumbled upon roboearth [2], only to find it cold and abandoned, I still wanted to check out the project and see how the system worked and what could gained from the previous design. However, having little desire in porting an entirely unfamiliar codebase to my current OS for some brief tutorials, I sort of stopped short after just reading through the source code. A far simpler and interactive approach could now be to just probe and run the legacy codebase from a linux container with the original release dependencies.

Q: Why not backport legacy images into the official docker library?
A: That ship has sort of sailed… :sailboat:

This was briefly discussed, but not pursued for a few reasons [3]:

  1. Recent improvements for multi architecture support in the official library registry makes now makes it tricky adding legacy distros that rely on ancient ubuntu images no longer in the build pipeline.
  2. Additionally, the dockerfiles are still new and could be improved, thus hosting them under osrf/ros_legacy keeps it simple to update, so PRs for legacy images are welcome.

ROS Legacy Docker Pulls Docker Stars

  • amd64

For current maintainers, please do not take this as cause to postpone the releasing of your package into current ROS releases, as these images will only be provided on a best effort basis. But for users who may be on the verge of adopting an abandoned package, I hope you find these useful reviving such projects.

Note:

The base images used are Ubuntu releases that are now also EOL :skull:, and thus no longer receive security updates :syringe:. I would strongly advise against using such derived images for anything other than just investigating or general posterity. However, at the time writing, all EOL related dockerfiles still do successfully build, and are hosted from an automated build repo. The dockerfiles also include some sugar and magic to account for some of the odd idiosyncrasies of the legacy environments.

cheers,
@ruffsl

P.S.

On a somewhat related milstone, the official ROS library repo has recently surpassed 1 million pulls!
Perhaps including such metrics into the annual ROS Community Metrics report would be a nice to show.
For starters, the information can be polled from the Docker Registry v2 API [4]:
And at the time of writing this post: Docker Pulls
"pull_count": 1101665
"star_count": 127

[1] https://hub.docker.com/r/osrf/ros_eol/
[2] roboearth - ROS Wiki
[3] Archiving of legacy ROS distros · Issue #80 · osrf/docker_images · GitHub
[4] https://hub.docker.com/v2/repositories/library/ros/

3 Likes