diff --git a/docs/50_hub.md b/docs/50_hub.md index a33fc139..67384599 100644 --- a/docs/50_hub.md +++ b/docs/50_hub.md @@ -21,7 +21,18 @@ A "Base (MATLAB)" server is also available, which provides a MATLAB cloud instal ## Custom server image -If you need additional software installed in the image, you can add a server image that will be made available for all users in the `Server Options` menu. Add a server image by updating the `profileList` in the [JupyterHub config file](https://github.com/dandi/dandi-hub/blob/do-eks/helm/jupyterhub/dandihub.yaml) and submitting a pull request to the [dandi-hub repository](https://github.com/dandi/dandi-hub). Once the pull request is merged, the DANDI team will redeploy JupyterHub and the image will be available. +If you need additional software installed in the image, you can add a server image that will be made available for all users in the `Server Options` menu. Add a server image by following the instructions below and submitting a pull request to the [dandi-hub repository](https://github.com/dandi/dandi-hub). Once the pull request is merged, the DANDI team will redeploy JupyterHub and the image will be available. + + +1. Fork and clone the [dandi-hub](https://github.com/dandi/dandi-hub) repository. +2. Add a Dockerfile to the [images](https://github.com/dandi/dandi-hub/tree/main/images) directory. +3. Test the Dockerfile with the following commands to build and run the new image, which can be viewed locally in the browser at 127.0.0.1:8888/ +```sh +docker build -f "$(CONTAINERFILE)" -t dandihub-dev:latest . +docker run --rm -p 8888:8888 --name dev_jupyterlab dandihub-dev:latest start-notebook.sh --NotebookApp.token="" +``` +4. Add the Dockerfile to the `include` matrix of both the [docker-push.yaml](https://github.com/dandi/dandi-hub/blob/main/.github/workflows/docker-push.yaml) and [docker-test.yaml](https://github.com/dandi/dandi-hub/blob/main/.github/workflows/docker-test.yaml) files. This will allow the image to be built when new pull requests are opened and pushed to the [DANDI Archive Docker Hub](https://hub.docker.com/u/dandiarchive) when the pull requests are merged. +5. Add the image to the server options by updating the [jupyterhub.yaml](https://github.com/dandi/dandi-hub/blob/main/envs/shared/jupyterhub.yaml) file. ## Example notebooks