I am trying to deploy simulation notebooks using root on mybinder.
I can run the notebooks fine locally using jupyter-repo2docker.
However, When I try to run them on mybinder.org, they seem to have JSRootCore missing.
Mybinder is fetching them from the wrong URL
Binder is using the following URL:
https://hub.gke2.mybinder.org/hub/static/scripts/JSRootCore.js
while the correct url is https://hub.gke2.mybinder.org/user/biodynamo-binder-demo-zbqn9wpo/static/scripts/JSRootCore.js
Repo link: GitHub - BioDynaMo/binder-demo
It doesn’t look like your Dockerfile follows several of the steps in the documentation here as detailed below. (If your current, Dockerfile is good for your own uses, it recommend making a binder
directory and putting the Dockerfile you need for Binder there.)
Despite that, you said it works fine for jupyter-repo2docker
and so maybe your fancier Dockerfile (compared to the suggestions and here) is just hard-coding more things than the suggested code does, then maybe you just need to fix the SHA tag, step #2 below? And also maybe address step#4? I’d suggest following the recommended blocks more closely, too.
Ticking off the suggestions from the steps in order:
-
I don’t find --no-cache-dir
anywhere in your Dockerfile and so I assume you didn’t do that step?
-
Your FROM
uses latest
when you are supposed to SHA tag.
-
Your user environmental variables blocks doesn’t match block specified:
ARG NB_USER=jovyan
ARG NB_UID=1000
ENV USER ${NB_USER}
ENV NB_UID ${NB_UID}
ENV HOME /home/${NB_USER}
RUN adduser --disabled-password \
--gecos "Default user" \
--uid ${NB_UID} \
${NB_USER}
-
You do several copies from the repo. Maybe you followed this but you have commented out the USER root
step that is active in the example code block shown in the documentation.
-
Hopefully your entrypoint is good.