Skip to content

Commit 29ad79a

Browse files
committed
Freeze Python v3.11.8
1 parent 3394130 commit 29ad79a

File tree

6 files changed

+72
-30
lines changed

6 files changed

+72
-30
lines changed

VERSION_MATRIX.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Topmost entry = Tag `latest`
55
| Python | Jupyter Hub | Jupyter Lab | code‑server (Code) | Git | Git LFS | Pandoc | CTAN date[^2] | Quarto[^2] | Linux distro |
66
|:-----------|:------------|:------------|:-------------------|:-------|:--------|:-------|:--------------|:------------|:-------------|
77
| 3.12.2 | 4.1.4 | 4.1.5 | 4.22.1 (1.87.2) | 2.44.0 | 3.5.1 | 3.1.11 | | 1.4.552 | Debian 12 |
8-
| 3.11.8 | 4.0.2 | 4.1.0 | 4.21.0 (1.86.0) | 2.43.0 | 3.4.1 | 3.1.11 | | 1.4.549 | Debian 12 |
8+
| 3.11.8 | 4.1.4 | 4.1.5 | 4.22.1 (1.87.2) | 2.44.0 | 3.5.1 | 3.1.11 | 2024‑04‑02 | 1.4.552 | Debian 12 |
99
| 3.12.1 | 4.0.2 | 4.1.0 | 4.21.0 (1.86.0) | 2.43.0 | 3.4.1 | 3.1.11 | 2024‑02‑06 | 1.4.549 | Debian 12 |
1010
| 3.11.7 | 4.0.2 | 4.1.0 | 4.21.0 (1.86.0) | 2.43.0 | 3.4.1 | 3.1.11 | 2024‑02‑06 | 1.4.549 | Debian 12 |
1111
| 3.12.0[^1] | 4.0.2 | 4.0.9 | 4.19.1 (1.84.2) | 2.43.0 | 3.4.0 | 3.1.1 | 2023‑12‑08 | 1.3.450 | Debian 12 |

base/.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.env:
22
variables:
3-
PYTHON_VERSION: "3.12.2"
3+
PYTHON_VERSION: "3.11.8"
44
TAG_VERSION_MAJ_MIN: "false"
55
TAG_VERSION_MAJ: "false"
66

base/3.11.8.Dockerfile

Lines changed: 66 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ ARG CUDA_IMAGE_FLAVOR
66

77
ARG NB_USER=jovyan
88
ARG NB_UID=1000
9-
ARG JUPYTERHUB_VERSION=4.0.2
10-
ARG JUPYTERLAB_VERSION=4.1.0
9+
ARG JUPYTERHUB_VERSION=4.1.4
10+
ARG JUPYTERLAB_VERSION=4.1.5
1111
ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
12-
ARG CODE_SERVER_VERSION=4.21.0
13-
ARG GIT_VERSION=2.43.0
14-
ARG GIT_LFS_VERSION=3.4.1
12+
ARG CODE_SERVER_VERSION=4.22.1
13+
ARG GIT_VERSION=2.44.0
14+
ARG GIT_LFS_VERSION=3.5.1
1515
ARG PANDOC_VERSION=3.1.11
1616

1717
FROM ${BUILD_ON_IMAGE}${PYTHON_VERSION:+:}${PYTHON_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} AS files
@@ -29,8 +29,24 @@ COPY conf/shell /files
2929
COPY conf/user /files
3030
COPY scripts /files
3131

32+
## Copy content of skel directory to backup
3233
RUN cp -a /files/etc/skel/. /files/var/backups/skel \
3334
&& chown -R ${NB_UID}:${NB_GID} /files/var/backups/skel \
35+
## Copy custom fonts
36+
&& mkdir -p /files/usr/local/share/jupyter/lab/static/assets \
37+
&& cp -a /files/opt/code-server/src/browser/media/css \
38+
/files/usr/local/share/jupyter/lab/static/assets \
39+
&& cp -a /files/opt/code-server/src/browser/media/fonts \
40+
/files/usr/local/share/jupyter/lab/static/assets \
41+
&& if [ -n "${CUDA_VERSION}" ]; then \
42+
## Use entrypoint of CUDA image
43+
mv /opt/nvidia/entrypoint.d /opt/nvidia/nvidia_entrypoint.sh \
44+
/files/usr/local/bin; \
45+
mv /files/usr/local/bin/start.sh \
46+
/files/usr/local/bin/entrypoint.d/99-start.sh; \
47+
mv /files/usr/local/bin/nvidia_entrypoint.sh \
48+
/files/usr/local/bin/start.sh; \
49+
fi \
3450
## Ensure file modes are correct when using CI
3551
## Otherwise set to 777 in the target image
3652
&& find /files -type d -exec chmod 755 {} \; \
@@ -43,11 +59,6 @@ FROM glcr.b-data.ch/git-lfs/glfsi:${GIT_LFS_VERSION} AS glfsi
4359

4460
FROM ${BUILD_ON_IMAGE}${PYTHON_VERSION:+:}${PYTHON_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR}
4561

46-
LABEL org.opencontainers.image.licenses="MIT" \
47-
org.opencontainers.image.source="https://gitlab.b-data.ch/jupyterlab/python/docker-stack" \
48-
org.opencontainers.image.vendor="b-data GmbH" \
49-
org.opencontainers.image.authors="Olivier Benz <olivier.benz@b-data.ch>"
50-
5162
ARG DEBIAN_FRONTEND=noninteractive
5263

5364
ARG BUILD_ON_IMAGE
@@ -65,6 +76,17 @@ ARG BUILD_START
6576

6677
ARG CODE_WORKDIR
6778

79+
ARG CUDA_IMAGE_LICENSE=${CUDA_VERSION:+"NVIDIA Deep Learning Container License"}
80+
ARG IMAGE_LICENSE=${CUDA_IMAGE_LICENSE:-"MIT"}
81+
ARG IMAGE_SOURCE=https://gitlab.b-data.ch/jupyterlab/python/docker-stack
82+
ARG IMAGE_VENDOR="b-data GmbH"
83+
ARG IMAGE_AUTHORS="Olivier Benz <olivier.benz@b-data.ch>"
84+
85+
LABEL org.opencontainers.image.licenses="$IMAGE_LICENSE" \
86+
org.opencontainers.image.source="$IMAGE_SOURCE" \
87+
org.opencontainers.image.vendor="$IMAGE_VENDOR" \
88+
org.opencontainers.image.authors="$IMAGE_AUTHORS"
89+
6890
ENV PARENT_IMAGE=${BUILD_ON_IMAGE}${PYTHON_VERSION:+:}${PYTHON_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} \
6991
NB_USER=${NB_USER} \
7092
NB_UID=${NB_UID} \
@@ -151,10 +173,10 @@ RUN dpkgArch="$(dpkg --print-architecture)" \
151173
fi \
152174
## Install font MesloLGS NF
153175
&& mkdir -p /usr/share/fonts/truetype/meslo \
154-
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf -o /usr/share/fonts/truetype/meslo/MesloLGS\ NF\ Regular.ttf \
155-
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf -o /usr/share/fonts/truetype/meslo/MesloLGS\ NF\ Bold.ttf \
156-
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf -o /usr/share/fonts/truetype/meslo/MesloLGS\ NF\ Italic.ttf \
157-
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf -o /usr/share/fonts/truetype/meslo/MesloLGS\ NF\ Bold\ Italic.ttf \
176+
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf -o "/usr/share/fonts/truetype/meslo/MesloLGS NF Regular.ttf" \
177+
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf -o "/usr/share/fonts/truetype/meslo/MesloLGS NF Bold.ttf" \
178+
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf -o "/usr/share/fonts/truetype/meslo/MesloLGS NF Italic.ttf" \
179+
&& curl -sL https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf -o "/usr/share/fonts/truetype/meslo/MesloLGS NF Bold Italic.ttf" \
158180
&& fc-cache -fsv \
159181
## Git: Set default branch name to main
160182
&& git config --system init.defaultBranch main \
@@ -177,6 +199,11 @@ RUN dpkgArch="$(dpkg --print-architecture)" \
177199
fi \
178200
## Add user
179201
&& useradd -l -m -s $(which zsh) -N -u ${NB_UID} ${NB_USER} \
202+
## Mark home directory as populated
203+
&& touch /home/${NB_USER}/.populated \
204+
&& chown ${NB_UID}:${NB_GID} /home/${NB_USER}/.populated \
205+
&& chmod go+w /home/${NB_USER}/.populated \
206+
## Create backup directory for home directory
180207
&& mkdir -p /var/backups/skel \
181208
&& chown ${NB_UID}:${NB_GID} /var/backups/skel \
182209
## Install Tini
@@ -195,20 +222,22 @@ RUN mkdir /opt/code-server \
195222
&& cd /opt/code-server \
196223
&& curl -sL https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server-${CODE_SERVER_VERSION}-linux-$(dpkg --print-architecture).tar.gz | tar zxf - --no-same-owner --strip-components=1 \
197224
&& curl -sL https://upload.wikimedia.org/wikipedia/commons/9/9a/Visual_Studio_Code_1.35_icon.svg -o vscode.svg \
225+
## Copy custom fonts
226+
&& mkdir -p /opt/code-server/src/browser/media/fonts \
227+
&& cp -a /usr/share/fonts/truetype/meslo/*.ttf /opt/code-server/src/browser/media/fonts \
198228
## Include custom fonts
199-
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS-NF-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
200-
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS-NF-Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
201-
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS-NF-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
202-
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS-NF-Bold-Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
229+
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS NF Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
230+
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS NF Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
231+
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS NF Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
232+
&& sed -i 's|</head>| <link rel="preload" href="{{BASE}}/_static/src/browser/media/fonts/MesloLGS NF Bold Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
203233
&& sed -i 's|</head>| <link rel="stylesheet" type="text/css" href="{{BASE}}/_static/src/browser/media/css/fonts.css">\n </head>|g' /opt/code-server/lib/vscode/out/vs/code/browser/workbench/workbench.html \
204234
## Install code-server extensions
205235
&& cd /tmp \
206-
&& curl -sLO https://dl.b-data.ch/vsix/alefragnani.project-manager-12.7.0.vsix \
207-
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension alefragnani.project-manager-12.7.0.vsix \
208236
&& curl -sLO https://dl.b-data.ch/vsix/piotrpalarz.vscode-gitignore-generator-1.0.3.vsix \
209237
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension piotrpalarz.vscode-gitignore-generator-1.0.3.vsix \
210238
&& curl -sLO https://dl.b-data.ch/vsix/mutantdino.resourcemonitor-1.0.7.vsix \
211239
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension mutantdino.resourcemonitor-1.0.7.vsix \
240+
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension alefragnani.project-manager \
212241
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension GitHub.vscode-pull-request-github \
213242
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension GitLab.gitlab-workflow \
214243
&& code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension ms-python.python \
@@ -241,11 +270,22 @@ RUN export PIP_BREAK_SYSTEM_PACKAGES=1 \
241270
nbclassic \
242271
nbconvert \
243272
python-lsp-server[all] \
273+
## Jupyter Server Proxy: Set maximum allowed HTTP body size to 10 GiB
274+
&& sed -i 's/AsyncHTTPClient(/AsyncHTTPClient(max_body_size=10737418240, /g' \
275+
/usr/local/lib/python*/*-packages/jupyter_server_proxy/handlers.py \
276+
## Jupyter Server Proxy: Set maximum allowed websocket message size to 1 GiB
277+
&& sed -i 's/"_default_max_message_size",.*$/"_default_max_message_size", 1024 \* 1024 \* 1024/g' \
278+
/usr/local/lib/python*/*-packages/jupyter_server_proxy/websocket.py \
279+
&& sed -i 's/_default_max_message_size =.*$/_default_max_message_size = 1024 \* 1024 \* 1024/g' \
280+
/usr/local/lib/python*/*-packages/tornado/websocket.py \
281+
## Copy custom fonts
282+
&& mkdir -p /usr/local/share/jupyter/lab/static/assets/fonts \
283+
&& cp -a /usr/share/fonts/truetype/meslo/*.ttf /usr/local/share/jupyter/lab/static/assets/fonts \
244284
## Include custom fonts
245-
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS-NF-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
246-
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS-NF-Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
247-
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS-NF-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
248-
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS-NF-Bold-Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
285+
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS NF Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
286+
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS NF Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
287+
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS NF Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
288+
&& sed -i 's|</head>|<link rel="preload" href="{{page_config.fullStaticUrl}}/assets/fonts/MesloLGS NF Bold Italic.woff2" as="font" type="font/woff2" crossorigin="anonymous"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
249289
&& sed -i 's|</head>|<link rel="stylesheet" type="text/css" href="{{page_config.fullStaticUrl}}/assets/css/fonts.css"></head>|g' /usr/local/share/jupyter/lab/static/index.html \
250290
## Clean up
251291
&& rm -rf /tmp/* \
@@ -274,6 +314,8 @@ RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master
274314
&& echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> ${HOME}/.zshrc \
275315
## Create user's private bin
276316
&& mkdir -p ${HOME}/.local/bin \
317+
## Record population timestamp
318+
&& date -uIseconds > ${HOME}/.populated \
277319
## Create backup of home directory
278320
&& cp -a ${HOME}/. /var/backups/skel
279321

common/subtags/devtools/3.11.8.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ ARG BASE_IMAGE_TAG=12
33
ARG BUILD_ON_IMAGE
44
ARG PYTHON_VERSION=3.11.8
55

6-
ARG NODE_VERSION=18.19.0
6+
ARG NODE_VERSION=18.20.0
77
ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
88

99
FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} as nsi

scipy/.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.env:
22
variables:
3-
PYTHON_VERSION: "3.12.2"
3+
PYTHON_VERSION: "3.11.8"
44
TAG_VERSION_MAJ_MIN: "false"
55
TAG_VERSION_MAJ: "false"
66

scipy/3.11.8.Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/python/base
22
ARG PYTHON_VERSION=3.11.8
33
ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
4-
ARG QUARTO_VERSION=1.4.549
5-
ARG CTAN_REPO=https://mirror.ctan.org/systems/texlive/tlnet
4+
ARG QUARTO_VERSION=1.4.552
5+
ARG CTAN_REPO=https://www.texlive.info/tlnet-archive/2024/04/02/tlnet
66

77
FROM ${BUILD_ON_IMAGE}${PYTHON_VERSION:+:}${PYTHON_VERSION}
88

0 commit comments

Comments
 (0)