rocker-org / rocker-versioned2

Run current & prior versions of R using docker. rocker/r-ver, rocker/rstudio, rocker/shiny, rocker/tidyverse, and so on.
https://rocker-project.org
GNU General Public License v2.0
390 stars 163 forks source link

rocker/binder broken (`jupyter` not in $PATH) #739

Closed yuvipanda closed 6 months ago

yuvipanda commented 6 months ago

Container image name

rocker/binder:4.3

Container image digest

sha256:64f7b60a8d03f291b42e76d8250aaa525c2fe30e5a9af2217965a9dd90557a93

What operating system are you seeing the problem on?

macOS

System information

Server: Docker Engine - Community Engine: Version: 24.0.7 API version: 1.43 (minimum version 1.12) Go version: go1.20.10 Git commit: 311b9ff Built: Thu Oct 26 09:07:41 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.25 GitCommit: d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f runc: Version: 1.1.10 GitCommit: v1.1.10-0-g18a0cb0 docker-init: Version: 0.19.0 GitCommit: de40ad0 rootlesskit: Version: 1.1.1 ApiVersion: 1.1.1 NetworkDriver: slirp4netns PortDriver: builtin StateDir: /tmp/rootlesskit3151596074 slirp4netns: Version: 1.0.1 GitCommit: 6a7b16babc95b6a3056b33fb45b74a6f62262dd4

Bug description

Since https://github.com/rocker-org/rocker-versioned2/pull/718 was merged, jupyter is now installed in /opt/venv. However, the Dockerfile does not have the appropriate PATH variable set, so the rocker/binder image no longer starts as jupyter is no longer in $PATH and it's the default entrypoitn.

I'm not actually sure how to generate the Dockerfiles from the json, so not sure how to go about fixing it. I don't fully understand the JSON -> Dockerfile -> built images pipeline.

How to reproduce this bug?

$ docker run -it rocker/binder:4.3  jupyter lab
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "jupyter": executable file not found in $PATH: unknown.
ERRO[0001] error waiting for container: context canceled 
eitsupi commented 6 months ago

This was caused by merging #718 automatically triggering a build even though that had not updated Dockerfiles correctly. Actually the build should have taken place after the Dockerfiles were correctly updated by #738, but I only noticed it after the build was done.

eitsupi commented 6 months ago

@yuvipanda On second thought, unless we update all previous stack files, the next build will break all rocker/binder:4.X.X. I am sorry, but could you please update all the stack files (by hand) and Dockerfiles (by the script)?

yuvipanda commented 6 months ago

@eitsupi does https://github.com/rocker-org/rocker-versioned2/pull/740 help?

I am sorry for not catching it either. I'll admit I still don't fully understand how the json / make interact together (https://github.com/rocker-org/rocker-versioned2/issues/720) so am not still 100% sure I did the things I needed to do.

eitsupi commented 6 months ago

I think this has been solved.