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

Got it to run under Docker in Docker #79

Open
ms-jpq opened this issue Feb 18, 2020 · 2 comments
Open

Got it to run under Docker in Docker #79

ms-jpq opened this issue Feb 18, 2020 · 2 comments

Comments

@ms-jpq
Copy link

ms-jpq commented Feb 18, 2020

Hi there,

Really cool project!

I just spent an afternoon dockerizing it. I have a repo here:

https://github.com/ms-jpq/nodebook-docker

It runs Docker inside Docker, so everything is a bit cleaner.

So far I've tested all the repls (with hello world), and they all seem to be a-okay except ocaml. It throws a Permission denied thing.

I don't know if you want to incorporate it into your main repo or not, but just thought i'd let you know. :)

Have a good day!

Edit:

Ocaml also throws the same error if i run it outside of Docker in Docker. (Still using the same --docker option)

So I dont think thats related.

@netgusto
Copy link
Owner

Hey thanks! How would you go about integrating it in the main repo?
I'm not sure it's necessary though, It looks fine to me as it is.

Running it on mac with Docker Desktop for Mac, I get this error when executing an image, after downloading the toolchain image:

INFO[2020-02-26T21:41:27.714903700Z] Attempting next endpoint for pull after error: failed to register layer: Error processing tar file(exit status 1): failed to mknod("/etc/ssl/certs", S_IFCHR, 0): function
not implemented
2020/02/26 21:41:27 http: panic serving 172.17.0.1:37112: ERROR: Downloaded Docker image, but could not create container nevertheless: Error: No such image: docker.io/library/node:alpine
goroutine 85 [running]:
net/http.(*conn).serve.func1(0xc00012f5e0)
        /usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x8b0520, 0xc0004b21a0)
        /usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/netgusto/nodebook/src/core/shared/recipe/helper.stdExecDocker.func1()
        /Users/jerome/nodebook/src/core/shared/recipe/helper/stdexec.go:107 +0xd44
github.com/netgusto/nodebook/src/core/shared/types.CallbackExecHandler.Start(...)
        /Users/jerome/nodebook/src/core/shared/types/callbackexechandler.go:9
github.com/netgusto/nodebook/src/core/httphandler.ApiNotebookExecHandler.func1(0xa886a0, 0xc000244380, 0xc00045bb00)
        /Users/jerome/nodebook/src/core/httphandler/apinotebookexec.go:57 +0x4df
net/http.HandlerFunc.ServeHTTP(0xc00038a040, 0xa886a0, 0xc000244380, 0xc00045bb00)
        /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/gorilla/mux.(*Router).ServeHTTP(0xc0001f8240, 0xa886a0, 0xc000244380, 0xc00045b900)
        /Users/jerome/go/pkg/mod/github.com/gorilla/mux@v1.7.3/mux.go:212 +0xe2
net/http.serverHandler.ServeHTTP(0xc0003840e0, 0xa886a0, 0xc000244380, 0xc00045b900)
        /usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc00012f5e0, 0xa898e0, 0xc000386780)
        /usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:2927 +0x38e
INFO[2020-02-26T21:41:28.406941900Z] Layer sha256:5216338b40a7b96416b8b9858974bbe4acc3096ee60acbc4dfb1ee02aecceb10 cleaned up

When I remove the volume definition for /var/lib/docker from the launch command, it works fine.

@ms-jpq
Copy link
Author

ms-jpq commented Mar 15, 2020

Hey sorry about the late reply.

I was thinking that I could perhaps file a PR with a Dockerfile that includes a build step like:

FROM golang AS build...

I can just modify the Makefile to include the Docker build + release to docker hub.

It will however, probably be a good idea for you to open a Dockerhub account tho, to have an official release image. It shouldn't be alot of work, but I dont want to burden you with this, without asking you first.


As for the Docker for Mac issue:

Yeah, it looks like the cache won't work in this case, we should probably just add a warning on the README or something.

For whatever reason Docker for Mac has just horrible file system characteristics, seems like a well known issue, they even added a cache just to work around it. I tried it on my Mac and even just pulling the docker images is about 2-3x as slow. (Not the mention the error)

Really not sure what we can do to fix this to be totally honest, at first I thought it was a permission issue, but even with chmod -R 777 . the error doesn't go away.

What do you think?

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

2 participants