Skip to content

Commit

Permalink
base-notebook: stop installing nodejs from conda-forge
Browse files Browse the repository at this point in the history
nodejs was a conda dependency of jupyterhub, but by installing
jupyterhub-base we no longer need it and could opt to remove it.

By doing this, building base-notebook led to a reported size reduction
from 974MB to 828MB, which is a 146MB / 15% size reduction.
  • Loading branch information
consideRatio committed Nov 6, 2024
1 parent 2c7e64a commit 011bb71
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 19 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
This changelog only contains breaking and/or significant changes manually introduced to this repository (using Pull Requests).
All image manifests can be found in [the wiki](https://github.com/jupyter/docker-stacks/wiki).

## 2024-11-??

Affected: all images except `docker-stacks-foundation`.

- **Breaking:** base-notebook: stop installing nodejs from conda-forge ([#2172](https://github.com/jupyter/docker-stacks/pull/2172)).

Reason: It isn't a direct dependency on anything in the images any more, and increased the image size with ~150MB.

## 2024-11-06

Affected: all images except `docker-stacks-foundation`.
Expand Down
2 changes: 0 additions & 2 deletions docs/using/selecting.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ It contains:
- Everything in `jupyter/docker-stacks-foundation`
- Minimally functional Server (e.g., no LaTeX support for saving notebooks as PDFs)
- `notebook`, `jupyterhub-base`, and `jupyterlab` packages
Note: we're also installing `nodejs` as it has historically been installed indirectly as a dependency of `jupyterhub` package, which was used before.
See more at: <https://github.com/jupyter/docker-stacks/pull/2171>
- A `start-notebook.py` script as the default command
- A `start-singleuser.py` script useful for launching containers in JupyterHub
- Options for a self-signed HTTPS certificate
Expand Down
7 changes: 0 additions & 7 deletions images/base-notebook/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,20 +42,13 @@ RUN mamba install --yes \
'jupyterhub-base' \
'jupyterlab' \
'nbclassic' \
# nodejs has historically been installed indirectly as a dependency.
# When it was no longer getting installed indirectly,
# we started installing it explicitly to avoid introducing a breaking change
# for users building on top of these images.
# See: https://github.com/jupyter/docker-stacks/pull/2171
'nodejs' \
# Sometimes, when the new version of `jupyterlab` is released, latest `notebook` might not support it for some time
# Old versions of `notebook` (<v7) didn't have a restriction on the `jupyterlab` version, and old `notebook` is getting installed
# That's why we have to pin the minimum notebook version
# More info: https://github.com/jupyter/docker-stacks/pull/2167
'notebook>=7.2.2' && \
jupyter server --generate-config && \
mamba clean --all -f -y && \
npm cache clean --force && \
jupyter lab clean && \
rm -rf "/home/${NB_USER}/.cache/yarn" && \
fix-permissions "${CONDA_DIR}" && \
Expand Down
9 changes: 0 additions & 9 deletions tests/base-notebook/test_npm_package_manager.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/docker-stacks-foundation/test_packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@
"jupyterhub-base",
"jupyterlab-git",
"mamba[version='<2.0.0']",
"nodejs",
"notebook[version='>",
"openssl",
"pandas[version='>",
Expand Down

0 comments on commit 011bb71

Please sign in to comment.