Unable to run jupyter on custom docker image
I am basically trying to build my own custom container and run jupyter lab in it. I've copied the configuration from base rundpod image from github. Everything is fine there. The problem occurs when the pod is booted up as it is supposed to start jupyterlab but we get the jupyter command not found issue which is why port 8888 is not ready. First screenshot is from my local machine where i get into the docker and i see jupyter --help works. Second one is from the runpod instance where it complains that jupyter is not found but then when i install in my conda env it only updates certifi version (as you can see from the screenshot) and then after that jupyter command is available again. I'm puzzle by this behaviour. How can a same docker container behave differently in different environments?
10 Replies
Jupyter Lab and its dependencies may not be properly managed or installed in the container's environment, leading to the "jupyter command not found" issue.
do you mean you need to reinstall the jupyter everytime you start the pod?
hows your dockerfile, and can i see also the script that installs your jupyterlab
the first screenshot is from my docker container running locally. As you can see jupyter is installed. it works fine there. The command not found is happening only on runpod
I've digged deep into the
start.sh
that runpod has, it invokes jupyter if JUPYTER_PASSWORD
set. https://github.com/runpod/containers/blob/main/container-template/start.sh#L75
However setting environment variables is happening after that:
https://github.com/runpod/containers/blob/main/container-template/start.sh#L96
I'm wondering how that lines gets invoked. Right now i have to open a shell into my pod, do conda install -y jupyter
and it just barely updates a file called certifi
and then jupyter command can be found. so I launch it and connect it.GitHub
containers/container-template/start.sh at main · runpod/containers
🐳 | Dockerfiles for the RunPod container images used for our official templates. - runpod/containers
Perhaps something to do with
start jupyter notebook
button that default runpod templates have during gpu deployment screen. I don't have that option since I have a custom template.This is the checkbox i mean
Check the pod after deployment does it generate one automatically? I think it does
I have the port link but it always says port is not ready. When i click it's HTTP 502 which is why i have to open the web terminal, run 1-2 commands and then it becomes ready
Here is my dockerfile for reference:
start.sh, nginx.conf is copied from the runpod github repo.
What commands is it
Can you add it on the start script
I have done this on runpod (overriding the start cmd)
bash -c 'source ~/.bashrc && conda activate py && conda install -y jupyter && ./start.sh'
but somehow i still needed webterminal launch jupyter. 🤷♂️
Maybe it's not run?, it is better to put it inside your docker file