-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Docker #6196
Docker #6196
Conversation
Personally, I would put this in |
+@EricCousineau-TRI for feature review Review status: 0 of 4 files reviewed at latest revision, all discussions resolved. Comments from Reviewable |
Thanks again for putting this together! Just made a few minor comments. (NOTE: Just read the update on slack, so some of them may not apply anymore.) Also, I concur with Jamie that this should go in NOTE: I am still somewhat of a Docker newbie, so please let me know if any of the below comments do not make sense. Reviewed 1 of 4 files at r1. tools/docker/Dockerfile.nvidia, line 1 at r1 (raw file):
Per the Slack conversation, this copyright is not consistent with the rest of the code base. Would it be possible to remove this? tools/docker/Dockerfile.nvidia, line 2 at r1 (raw file):
Could you add a comment explaining why tools/docker/Dockerfile.nvidia, line 4 at r1 (raw file):
Per Jeremy's comment on Slack, we should be able to leverage Would it be possible to change this docker image to do the following?
tools/docker/Dockerfile.nvidia, line 10 at r1 (raw file):
For people new to Docker, would it be possible to add comments regarding what is going on? tools/docker/Dockerfile.nvidia, line 13 at r1 (raw file):
nit Rather than naming the root directory tools/docker/Dockerfile.nvidia, line 18 at r1 (raw file):
Per Jeremy's other comment, we should probably block this on #6259, such that we only use tools/docker/Dockerfile.nvidia, line 20 at r1 (raw file):
Is it necessary to duplicate the entrypoint? Could we just do something like
since it's already there? tools/docker/Dockerfile.opensource, line 18 at r1 (raw file):
Is there a way to share the duplicate portions of these two scripts, or denote what is duplicated from the other image? tools/docker/entrypoint.sh, line 2 at r1 (raw file):
Could you add a comment describing what this file does? tools/docker/entrypoint.sh, line 3 at r1 (raw file):
nit Could you make this tools/docker/entrypoint.sh, line 5 at r1 (raw file):
Per the above comments, could you make this work using tools/docker/README.md, line 6 at r1 (raw file):
Per the above comment, would it be possible to post a link to a simple Docker "Getting Started" tutorial to further explain these steps? tools/docker/README.md, line 7 at r1 (raw file):
nit Could you add the command to do tools/docker/README.md, line 8 at r1 (raw file):
nit Would it be possible to remove the trailing whitespace? tools/docker/README.md, line 19 at r1 (raw file):
nit Could this be placed in an indentation block / code block? tools/docker/README.md, line 38 at r1 (raw file):
Could you add a "Tips" section, such as removing Comments from Reviewable |
@brandon-northcutt Can you rebase? |
Reviewed 8 of 8 files at r2, 3 of 7 files at r3. setup/docker/entrypoint.sh, line 2 at r1 (raw file): Previously, EricCousineau-TRI wrote…
As a comment in the file? setup/docker/entrypoint.sh, line 3 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Done. setup/docker/entrypoint.sh, line 5 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Done. setup/docker/Dockerfile.nvidia, line 1 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Removed copyright lines. setup/docker/Dockerfile.nvidia, line 2 at r1 (raw file): Previously, EricCousineau-TRI wrote…
The Cuda image was not necessary as Drake does not need Cuda functionality. I have based the container on vanilla 16.04 Ubuntu. Actually, public images are free on DockerHub, should we publish a drake:16.04 image where Drake is pre-build? setup/docker/Dockerfile.nvidia, line 4 at r1 (raw file): Previously, EricCousineau-TRI wrote…
I had to add sudo to install_prereqs.sh to make this work, but I was able to remove the additional apt-get lines. The workflow I envisioned is that a user will git clone drake and then run setup/docker/Dockerfile.nvidia, line 10 at r1 (raw file): Previously, EricCousineau-TRI wrote…
I added a Getting Started section to the documentation. setup/docker/Dockerfile.nvidia, line 13 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Renamed /drake in Docker container to /drake-distro. setup/docker/Dockerfile.nvidia, line 18 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Fine by me. There will be less time waiting for build if we don't run setup/docker/Dockerfile.nvidia, line 20 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Good point. setup/docker/Dockerfile.opensource, line 18 at r1 (raw file): Previously, EricCousineau-TRI wrote…
There is now only one Dockerfile as Cuda support wasn't necessary. tools/docker/README.md, line 6 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Getting Started section added. tools/docker/README.md, line 7 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Similar to the other workflow comment. Let's talk more about what is a good workflow to give flexibility, simplicity, and generality. tools/docker/README.md, line 8 at r1 (raw file): Previously, EricCousineau-TRI wrote…
No more README.md. tools/docker/README.md, line 19 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Code blocks used in drake/doc/docker.rst. tools/docker/README.md, line 38 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Have a look at the new Sphinx document and let me know if anything is missing. Comments from Reviewable |
Reviewed 3 of 8 files at r2, 4 of 7 files at r3. Comments from Reviewable |
Reviewed 2 of 7 files at r3. drake/doc/docker.rst, line 8 at r3 (raw file):
Would it be possible to mention the docker image is provided as an experimental feature, stating that it is presently not under CI? drake/doc/docker.rst, line 36 at r3 (raw file):
Just to make it explicit, could you mention that the And would it still be possible to mention how a user can get their changes back onto their host system? Options that I am aware of:
drake/doc/docker.rst, line 42 at r3 (raw file):
Minor typo here and below: drake/doc/docker.rst, line 48 at r3 (raw file):
Minor typo here as well. drake/doc/docker.rst, line 58 at r3 (raw file):
Could you make a quick note here that setup/docker/entrypoint.sh, line 2 at r1 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
Yup! (Sorry for not clarifying that.) setup/docker/Dockerfile.nvidia, line 2 at r1 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
I would definitely like to see a public Drake prebuilt image; however, I am not sure what the best timing would be, and would be dependent on CI stuff. I will create a separate issue on this, and will tag you, @jwnimmer-tri, and @stonier. setup/docker/Dockerfile.nvidia, line 4 at r1 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
BTW Ah, OK, copying does make more sense, thanks for explaining that! I have added some comments above on adding some sidenotes. Comments from Reviewable |
f0c3374
to
54054f2
Compare
Reviewed 1 of 8 files at r2, 3 of 4 files at r4. drake/doc/docker.rst, line 8 at r3 (raw file): Previously, EricCousineau-TRI wrote…
Done. drake/doc/docker.rst, line 36 at r3 (raw file): Previously, EricCousineau-TRI wrote…
Added comments about getting code out of the Docker container. drake/doc/docker.rst, line 42 at r3 (raw file): Previously, EricCousineau-TRI wrote…
Thanks! drake/doc/docker.rst, line 48 at r3 (raw file): Previously, EricCousineau-TRI wrote…
Fixed. drake/doc/docker.rst, line 58 at r3 (raw file): Previously, EricCousineau-TRI wrote…
Comment added. setup/docker/entrypoint.sh, line 2 at r1 (raw file): Previously, EricCousineau-TRI wrote…
Done. Comments from Reviewable |
Reviewed 1 of 4 files at r4. Comments from Reviewable |
+@ggould-tri for platform review. Reviewed 4 of 8 files at r2, 5 of 7 files at r3, 4 of 4 files at r4. drake/doc/docker.rst, line 15 at r4 (raw file):
nit Capitalization drake/doc/docker.rst, line 104 at r4 (raw file):
nit Missing dash drake/doc/docker.rst, line 106 at r4 (raw file):
nit Spelling Comments from Reviewable |
Review status: all files reviewed at latest revision, 3 unresolved discussions. drake/doc/docker.rst, line 15 at r4 (raw file): Previously, EricCousineau-TRI wrote…
Good catch. drake/doc/docker.rst, line 104 at r4 (raw file): Previously, EricCousineau-TRI wrote…
Thanks. drake/doc/docker.rst, line 106 at r4 (raw file): Previously, EricCousineau-TRI wrote…
Thanks. Comments from Reviewable |
Reviewed 2 of 2 files at r5. Comments from Reviewable |
Reviewed 1 of 1 files at r6. Comments from Reviewable |
Reviewed 1 of 1 files at r7. Comments from Reviewable |
Review status: all files reviewed at latest revision, 4 unresolved discussions. a discussion (no related file): Comments from Reviewable |
This will take a little while as I will need to get a 16.04 drake world to test this. I'll try to get to it this afternoon or tomorrow. Review status: all files reviewed at latest revision, 4 unresolved discussions. Comments from Reviewable |
7d0eb1d
to
ed80f99
Compare
Failed at the first couple of commands. Notes below. Review status: 4 of 6 files reviewed at latest revision, 7 unresolved discussions. drake/doc/docker.rst, line 27 at r8 (raw file):
That document requires docker 1.13 or later; ubuntu 14.04 and 16.04 do not meet this. Users will be unable to run the recommended commands in that document. drake/doc/docker.rst, line 50 at r8 (raw file):
drake/doc/docker.rst, line 50 at r8 (raw file):
AFAICT on default ubuntu 16.04 install, the first docker command must be Comments from Reviewable |
Review status: 4 of 6 files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 50 at r8 (raw file): Previously, ggould-tri wrote…
User error. Closing. Comments from Reviewable |
Review status: 4 of 6 files reviewed at latest revision, 7 unresolved discussions. drake/doc/docker.rst, line 50 at r8 (raw file):
Comments from Reviewable |
Reviewed 3 of 3 files at r8. drake/doc/docker.rst, line 27 at r8 (raw file): Previously, ggould-tri wrote…
Only the operating system inside of the Docker container is intended to be constrained to Ubuntu 16.04. We can have additional Dockerfiles for each system we intend to support. Then CI can use these Docker images to verify build and test results on all those systems. But the additional benefit is that users can bring up Drake on any host system that can install Docker (most). I don't think we want to take on providing instructions on how to setup and install Docker on all the possible host systems. So I should probably amend this getting started to say "follow your preferred operating system instructions for getting Docker installed." It is certainly true that some users will have Ubuntu 16.04 as their host system, I'll bring up a 16.04 system and make sure these commands will run there. drake/doc/docker.rst, line 50 at r8 (raw file): Previously, ggould-tri wrote…
After installing Docker you'll need to add yourself to the docker group and re-login to get access to the Docker daemon. I'll update the getting started. Comments from Reviewable |
Review status: all files reviewed at latest revision, 7 unresolved discussions. drake/doc/docker.rst, line 27 at r8 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
My concern is mostly that you're linking to a document which directly says that all of our supported configurations are not supported ("Note: version 1.13 or higher is required"). So we should be clearer what versions of docker we support and whether users should be taking a PPA to get current docker versions. Comments from Reviewable |
Review status: all files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 27 at r8 (raw file): Previously, ggould-tri wrote…
What I mean is that our supported configuration is inside the Docker image where Docker is not installed at all and I think it is by design that we do not want to place restrictions on the host operating system software versions. It is interesting that Docker's official Getting Started page specifies 1.13 as a minimum version and 1.12.6 is provided by Apt. I will remove the link to Docker's Getting Started page. Comments from Reviewable |
ed80f99
to
291b230
Compare
Review status: all files reviewed at latest revision, 9 unresolved discussions, some commit checks failed. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
It doesn't seem to, but possible for a different reason (btw I'm using Ubuntu 16.04 as the host OS if I haven't already mentioned it):
The same error appears if I run under sudo (though it doesn't download again...) Comments from Reviewable |
Review status: all files reviewed at latest revision, 9 unresolved discussions, some commit checks failed. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Just a sanity check, does this Ubuntu 16.04 host machine have an Nvidia GPU and the official drivers from Nvidia installed? Let me find a co-worker with this configuration and I'll step through there. My Ubuntu 16.04 machine is using the opensource drivers. Comments from Reviewable |
Review status: all files reviewed at latest revision, 9 unresolved discussions, some commit checks failed. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
Yep, NVIDIA driver version 370.28 (according to nvidia-settings). It also has an Intel GPU (it's a laptop) which is reported as The opensource instructions worked, except for the part where it couldn't actually use GL from inside the container since it wasn't using the right GL library. Comments from Reviewable |
731cb07
to
c3338eb
Compare
Reviewed 1 of 1 files at r14. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Okay, I've installed a vanilla Ubuntu 16.04 x86_64 with Nvidia and modified the instructions to a working state on that system. I've also verified this Docker system works in Fedora 25. Hopefully it will also work in MacOS and Windows Dockers. I'm hoping more users will test. Let me know if it works for you now! Comments from Reviewable |
Reviewed 1 of 3 files at r8, 1 of 3 files at r9, 1 of 2 files at r12. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
The current state of the PR seems to have gone back to the (non-working) deb install instructions? Comments from Reviewable |
Review status: all files reviewed at latest revision, 7 unresolved discussions. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
oh, wait, other instructions changed! will try. Comments from Reviewable |
Tested and it seems to work. I think we're close to being done. Left a couple more comments. Reviewed 1 of 8 files at r2, 1 of 5 files at r10, 1 of 1 files at r14. drake/doc/docker.rst, line 137 at r11 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
The new recipe seems to work for me! drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Ok, it looks like I need to do drake/doc/docker.rst, line 231 at r14 (raw file):
I tried this and indeed the import failed but it seemed to run. Is this a director or drake patch we're waiting for? Comments from Reviewable |
Review status: all files reviewed at latest revision, 5 unresolved discussions. drake/doc/docker.rst, line 137 at r11 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Nice! Comments from Reviewable |
Review status: all files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 231 at r14 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
I had another PR about the .obj/.mtl import problem (#6352). It looks like the upstream patch in VTK @liangfok mentioned has landed that mitigates that issue. If it still doesn't import, maybe we are waiting for the bazel packaged drake_visualizer to be re-rolled. Comments from Reviewable |
Review status: all files reviewed at latest revision, 7 unresolved discussions. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Can we add a mention that nvidia-modprobe needs to be installed before nvidia-docker? It'd be nice if others didn't have to track the dependency down like I did. drake/doc/docker.rst, line 231 at r14 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
If there's not actually a patch in progress, perhaps we should remove the "any day" promise. I think this PR is plenty useful on it's own, just don't want to get anyone's hopes up. Comments from Reviewable |
Review status: all files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
I don't have any of the xenial repository nvidia packages installed on my test machine. Maybe we can get together and compare packages? drake/doc/docker.rst, line 231 at r14 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Should I add a PR providing .mtl files so it the IIWA pick and place renders correctly now? I could make the default demonstration acrobot, but it's not as fun to look at as the IIWA pick and place or the bowling ball. Comments from Reviewable |
Review status: all files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
nvidia-modprobe looks like it came from xenial/multiverse on my machine. I'm curious how you would have gotten nvidia-docker to run without it using either recipe since both complained about it until I installed the package. drake/doc/docker.rst, line 231 at r14 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
I don't think a one-off fix adding those specific mtl files is worth it for just that demo to work. I'm fine with noting the issue that importing is currently broken without getting peoples hopes up that the fix is comine soon. Comments from Reviewable |
b17107d
to
4dc862c
Compare
Review status: 5 of 7 files reviewed at latest revision, 6 unresolved discussions. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Ah, I think I see what is going on. I installed Nvidia drivers via the drake/doc/docker.rst, line 231 at r14 (raw file): Previously, sammy-tri (Sam Creasey) wrote…
Done. Comments from Reviewable |
Reviewed 1 of 1 files at r15, 1 of 1 files at r16. Comments from Reviewable |
pending the remaining open issue Reviewed 1 of 1 files at r16. drake/doc/docker.rst, line 149 at r12 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
Oh, heh, that explains it. FWIW I'm using nvidia-370 but I'm honestly not sure there's any "correct" version to specify here, so I don't have a better suggestion. Comments from Reviewable |
Review status: all files reviewed at latest revision, 1 unresolved discussion. drake/doc/index.rst, line 121 at r9 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
Looks like it's pretty much ready! Comments from Reviewable |
Review status: all files reviewed at latest revision, all discussions resolved. drake/doc/index.rst, line 121 at r9 (raw file): Previously, brandon-northcutt (Brandon D. Northcutt) wrote…
Looks like a lot if whitespace changes to this file? Otherwise aok Comments from Reviewable |
4dc862c
to
03dc57b
Compare
Review status: 3 of 7 files reviewed at latest revision, all discussions resolved. drake/doc/index.rst, line 121 at r9 (raw file): Previously, RussTedrake (Russ Tedrake) wrote…
I have un-twiddled the whitespace. Thanks! Comments from Reviewable |
03dc57b
to
0ba12c1
Compare
Reviewed 2 of 2 files at r17. Comments from Reviewable |
Commits squashed down to one. All issues resolved. Review status: all files reviewed at latest revision, all discussions resolved, some commit checks pending. Comments from Reviewable |
-(status: curate commits before merging) Reviewed 1 of 1 files at r15, 2 of 2 files at r17. Comments from Reviewable |
Hello Drake team,
I've created a pair of Docker images to build Drake within Ubuntu 16.04 Docker containers and to run a visual demonstration. These files may make it easier for users of heterogeneous development environments to build, demonstrate, and develop for Drake. I've created a pull request in case you want to include these files to the main repository. Instructions to build and test are in tools/docker/README.md.
This change is