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

Remove Drake's non-Hub Docker instructions #7654

Closed
jwnimmer-tri opened this issue Dec 21, 2017 · 12 comments · Fixed by #13448
Closed

Remove Drake's non-Hub Docker instructions #7654

jwnimmer-tri opened this issue Dec 21, 2017 · 12 comments · Fixed by #13448

Comments

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Dec 21, 2017

Edit: The original issue title was "CI coverage for Drake's Docker instructions". We have since pivoted to removing the instructions instead.

Our http://drake.mit.edu/docker.html says "Note: This docker image is provided as an experimental feature and is not presently covered by continuous integration" ever since the Docker examples landed in #6196 six months ago. It would be great to have CI coverage so we can keep it working (for fixes like #7653).

Possibly there is some drake-external-examples overlap that makes more sense than doing this directly within the Drake tree itself?

Relates #6315.

/CC @EricCousineau-TRI

@EricCousineau-TRI
Copy link
Contributor

EricCousineau-TRI commented Jan 28, 2018

@jamiesnape Should we move Docker build testing to drake-external-examples?
(And only test building a really small portion of Drake?)

@EricCousineau-TRI EricCousineau-TRI self-assigned this Jan 28, 2018
@jwnimmer-tri
Copy link
Collaborator Author

Without CI, the Drake Docker documentation has bitrotted, especially with regard to drake-distro vs drake. We should either fix the documentation promptly (and also add CI), or else remove (or maybe just bury) the documentation until someone cares to fix it.

@jamiesnape
Copy link
Contributor

We should bury it or simplify it. Just a Docker container that calls the install_prereqs.sh for now, no graphical, no NVIDIA. When we have resources we can do something more complete.

@EricCousineau-TRI
Copy link
Contributor

It still seems like a useful starting place for others, and provides for a quick local "unprovisioned" test.
Is it possible to run occasional (say once a week or so) CI on the Docker build, if computing resources are expensive? The process could be relatively short, such as building a smaller portion of Drake, possibly running drake_visualizer without pydrake, etc.

Another option is that someone (perhaps myself, if I want to keep it around) just sets a reminder every couple of weeks to run this manually to prevent long-term bitrot.

If none of these are tractable, or the expense is on engineer time setting it up, then yes, I'd be fine with downsizing our Docker instructions, as long as we leave breadcrumbs for easily constructing an NVidia-capable image (as I have found that useful for myself).

@peteflorence
Copy link
Contributor

peteflorence commented Feb 8, 2018 via email

@jamiesnape
Copy link
Contributor

It is not expensive in terms of AWS costs, it is expensive in terms of infrastructure setup and maintenance. I think we know how to test it in CI, it is not difficult at all, it is just very different from everything else. If it were a high priority, sure we could do it next week, but I personally do not think it should be above release engineering, distribution, and our general lack of testing of the installs.

@jwnimmer-tri
Copy link
Collaborator Author

Another option is that someone (perhaps myself, if I want to keep it around) just sets a reminder every couple of weeks to run this manually to prevent long-term bitrot.

I only care that our docs (and the code they refer to) are correct. If you think manually running some tests can sustain that, and your time is worth spending that way, I'd be satisfied to keep (some variant of) the instructions intact. It just means that PRs are not required to keep those instructions working, but instead you get to repair them by hand after the fact.

@EricCousineau-TRI
Copy link
Contributor

EricCousineau-TRI commented Jun 13, 2019

This may be best resolved by provisioning an image on dockerhub, on RobotLocomotion/drake for just Bionic.

Need to decide scope of support:

  • Just the packaged Drake, with prereqs + CMake support?
  • The full Bazel devel workspace, which can run bazel test //...

@jwnimmer-tri
Copy link
Collaborator Author

@EricCousineau-TRI @jamiesnape I wonder if we can remove https://github.com/RobotLocomotion/drake/tree/master/setup/ubuntu/docker now and update our documentation to point to some of the newer work you've been doing?

@jamiesnape
Copy link
Contributor

I would certainly hope we could. robotlocomotion/drake:latest should be good for all but a small handful of people who might actually want to contribute to Drake yet develop on Docker (and those people should be able to work out what do themselves).

@EricCousineau-TRI
Copy link
Contributor

I'm OK with that.

Along the lines of what @jamiesnape said, it would be nice to still have those commands on record; they're in Git, so yeah, we can remove 'em from master.

@jwnimmer-tri jwnimmer-tri added component: distribution Nightly binaries, monthly releases, docker, installation type: documentation and removed component: continuous integration Jenkins, CDash, mirroring of externals, website infrastructure labels May 28, 2020
@jwnimmer-tri
Copy link
Collaborator Author

I've kicked this to @jamiesnape to work on soon, before apt package work starts. We can open a feature request later to add more hub images for different use cases, etc.

@jwnimmer-tri jwnimmer-tri changed the title CI coverage for Drake's Docker instructions Remove Drake's non-Hub Docker instructions May 28, 2020
@jamiesnape jamiesnape removed their assignment Jun 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

4 participants