[bitnami/jupyterhub][bitnami/jupyter-base-notebook] Remove code for Jupyterhub 5.x assets (#97439)

Signed-off-by: Jota Martos <jota.martos@broadcom.com>
This commit is contained in:
Juan José Martos
2026-09-11 17:20:47 +02:00
committed by GitHub
parent 83c069b760
commit b26da6d7d9
21 changed files with 20 additions and 353 deletions
+10
View File
@@ -0,0 +1,10 @@
# ⚠️ Important Notice: Upcoming changes to the Bitnami Catalog
Beginning August 28th, 2025, Bitnami will evolve its public catalog to offer a curated set of hardened, security-focused images under the new [Bitnami Secure Images initiative](https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications). As part of this transition:
- Granting community users access for the first time to security-optimized versions of popular container images.
- Bitnami will begin deprecating support for non-hardened, Debian-based software images in its free tier and will gradually remove non-latest tags from the public catalog. As a result, community users will have access to a reduced number of hardened images. These images are published only under the “latest” tag and are intended for development purposes
- Starting August 28th, over two weeks, all existing container images, including older or versioned tags (e.g., 2.50.0, 10.6), will be migrated from the public catalog (docker.io/bitnami) to the “Bitnami Legacy” repository (docker.io/bitnamilegacy), where they will no longer receive updates.
- For production workloads and long-term support, users are encouraged to adopt Bitnami Secure Images, which include hardened containers, smaller attack surfaces, CVE transparency (via VEX/KEV), SBOMs, and enterprise support.
These changes aim to improve the security posture of all Bitnami users by promoting best practices for software supply chain integrity and up-to-date deployments. For more details, visit the [Bitnami Secure Images announcement](https://github.com/bitnami/containers/issues/83267).
@@ -1,57 +0,0 @@
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
FROM docker.io/bitnami/minideb:bookworm
ARG DOWNLOADS_URL="https://downloads.bitnami.com/files/stacksmith"
ARG TARGETARCH
LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \
org.opencontainers.image.created="2026-09-02T02:54:59Z" \
org.opencontainers.image.description="Application packaged by Broadcom, Inc." \
org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/jupyter-base-notebook/README.md" \
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/jupyter-base-notebook" \
org.opencontainers.image.title="jupyter-base-notebook" \
org.opencontainers.image.vendor="Broadcom, Inc." \
org.opencontainers.image.version="5.5.2"
ENV HOME="/opt/bitnami/jupyterhub-singleuser/" \
OS_ARCH="${TARGETARCH:-amd64}" \
OS_FLAVOUR="debian-12" \
OS_NAME="linux"
COPY prebuildfs /
SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"]
# Install required system packages and dependencies
RUN install_packages ca-certificates curl libgcc-s1 libssl3 libstdc++6 procps zlib1g
RUN --mount=type=secret,id=downloads_url,env=SECRET_DOWNLOADS_URL \
DOWNLOADS_URL=${SECRET_DOWNLOADS_URL:-${DOWNLOADS_URL}} ; \
mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ || exit 1 ; \
COMPONENTS=( \
"miniforge-26.5.3-0-0-linux-${OS_ARCH}-debian-12" \
"jupyter-base-notebook-5.5.2-0-linux-${OS_ARCH}-debian-12" \
) ; \
for COMPONENT in "${COMPONENTS[@]}"; do \
if [ ! -f "${COMPONENT}.tar.gz" ]; then \
curl -SsLf "${DOWNLOADS_URL}/${COMPONENT}.tar.gz" -O ; \
fi ; \
sha256sum -c "/opt/bitnami/checksums/${COMPONENT}.tar.gz.sha256" ; \
tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner ; \
rm -rf "${COMPONENT}".tar.gz ; \
done ; \
rm -rf /opt/bitnami/checksums ;
RUN apt-get update && apt-get upgrade -y && \
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
RUN chmod g+rwX /opt/bitnami
RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true
RUN mkdir /opt/bitnami/jupyterhub-singleuser/ && chmod g+rwX /opt/bitnami/jupyterhub-singleuser/
RUN uninstall_packages curl
ENV APP_VERSION="5.5.2" \
BITNAMI_APP_NAME="jupyter-base-notebook" \
IMAGE_REVISION="0" \
PATH="/opt/bitnami/miniforge/bin:/opt/bitnami/common/bin:$PATH"
USER 1001
ENTRYPOINT [ "tini", "-g", "--" ]
CMD [ "jupyterhub-singleuser" ]
@@ -1 +0,0 @@
362f0e46e2f1b363a7d5e44680045ea703449905d6daf23832f400291abc2f11 jupyter-base-notebook-5.5.2-0-linux-amd64-debian-12.tar.gz
@@ -1 +0,0 @@
1ca2d2e9d6f691b5e85bed85d21a3320f9567023110eef6b1a72395715ca08d9 jupyter-base-notebook-5.5.2-0-linux-arm64-debian-12.tar.gz
@@ -1 +0,0 @@
70c191452882fcb3e96609f0c49bc43ac7a8c84e975ebbc98c84639c2fd72970 miniforge-26.5.3-0-0-linux-amd64-debian-12.tar.gz
@@ -1 +0,0 @@
46df3e2cc4e7e56b9d1de2ee8f6ec86b89c8727be7e12fbba74379993c11c979 miniforge-26.5.3-0-0-linux-arm64-debian-12.tar.gz
@@ -1,2 +0,0 @@
Bitnami containers ship with software bundles. You can find the licenses under:
/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt
@@ -1,27 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -eu
n=0
max=2
export DEBIAN_FRONTEND=noninteractive
until [ $n -gt $max ]; do
set +e
(
apt-get update -qq &&
apt-get install -y --no-install-recommends "$@"
)
CODE=$?
set -e
if [ $CODE -eq 0 ]; then
break
fi
if [ $n -eq $max ]; then
exit $CODE
fi
echo "apt failed, retrying"
n=$(($n + 1))
done
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
@@ -1,24 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -u
if [ $# -eq 0 ]; then
>&2 echo "No arguments provided"
exit 1
fi
script=$1
exit_code="${2:-96}"
fail_if_not_present="${3:-n}"
if test -f "$script"; then
sh $script
if [ $? -ne 0 ]; then
exit $((exit_code))
fi
elif [ "$fail_if_not_present" = "y" ]; then
>&2 echo "script not found: $script"
exit 127
fi
@@ -1,26 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -eu
n=0
max=2
export DEBIAN_FRONTEND=noninteractive
until [ $n -gt $max ]; do
set +e
(
apt-get autoremove --purge -y "$@"
)
CODE=$?
set -e
if [ $CODE -eq 0 ]; then
break
fi
if [ $n -eq $max ]; then
exit $CODE
fi
echo "apt failed, retrying"
n=$(($n + 1))
done
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
+10
View File
@@ -0,0 +1,10 @@
# ⚠️ Important Notice: Upcoming changes to the Bitnami Catalog
Beginning August 28th, 2025, Bitnami will evolve its public catalog to offer a curated set of hardened, security-focused images under the new [Bitnami Secure Images initiative](https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications). As part of this transition:
- Granting community users access for the first time to security-optimized versions of popular container images.
- Bitnami will begin deprecating support for non-hardened, Debian-based software images in its free tier and will gradually remove non-latest tags from the public catalog. As a result, community users will have access to a reduced number of hardened images. These images are published only under the “latest” tag and are intended for development purposes
- Starting August 28th, over two weeks, all existing container images, including older or versioned tags (e.g., 2.50.0, 10.6), will be migrated from the public catalog (docker.io/bitnami) to the “Bitnami Legacy” repository (docker.io/bitnamilegacy), where they will no longer receive updates.
- For production workloads and long-term support, users are encouraged to adopt Bitnami Secure Images, which include hardened containers, smaller attack surfaces, CVE transparency (via VEX/KEV), SBOMs, and enterprise support.
These changes aim to improve the security posture of all Bitnami users by promoting best practices for software supply chain integrity and up-to-date deployments. For more details, visit the [Bitnami Secure Images announcement](https://github.com/bitnami/containers/issues/83267).
-55
View File
@@ -1,55 +0,0 @@
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
FROM docker.io/bitnami/minideb:bookworm
ARG DOWNLOADS_URL="https://downloads.bitnami.com/files/stacksmith"
ARG TARGETARCH
LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \
org.opencontainers.image.created="2026-09-01T20:44:12Z" \
org.opencontainers.image.description="Application packaged by Broadcom, Inc." \
org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/jupyterhub/README.md" \
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/jupyterhub" \
org.opencontainers.image.title="jupyterhub" \
org.opencontainers.image.vendor="Broadcom, Inc." \
org.opencontainers.image.version="5.5.2"
ENV HOME="/" \
OS_ARCH="${TARGETARCH:-amd64}" \
OS_FLAVOUR="debian-12" \
OS_NAME="linux"
COPY prebuildfs /
SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"]
# Install required system packages and dependencies
RUN install_packages ca-certificates curl libgcc-s1 libssl3 libstdc++6 procps zlib1g
RUN --mount=type=secret,id=downloads_url,env=SECRET_DOWNLOADS_URL \
DOWNLOADS_URL=${SECRET_DOWNLOADS_URL:-${DOWNLOADS_URL}} ; \
mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ || exit 1 ; \
COMPONENTS=( \
"miniforge-26.5.3-0-0-linux-${OS_ARCH}-debian-12" \
"jupyterhub-5.5.2-0-linux-${OS_ARCH}-debian-12" \
) ; \
for COMPONENT in "${COMPONENTS[@]}"; do \
if [ ! -f "${COMPONENT}.tar.gz" ]; then \
curl -SsLf "${DOWNLOADS_URL}/${COMPONENT}.tar.gz" -O ; \
fi ; \
sha256sum -c "/opt/bitnami/checksums/${COMPONENT}.tar.gz.sha256" ; \
tar -zxf "${COMPONENT}.tar.gz" -C /opt/bitnami --strip-components=2 --no-same-owner ; \
rm -rf "${COMPONENT}".tar.gz ; \
done ; \
rm -rf /opt/bitnami/checksums ;
RUN apt-get update && apt-get upgrade -y && \
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
RUN chmod g+rwX /opt/bitnami
RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true
RUN uninstall_packages curl
ENV APP_VERSION="5.5.2" \
BITNAMI_APP_NAME="jupyterhub" \
IMAGE_REVISION="0" \
PATH="/opt/bitnami/miniforge/bin:/opt/bitnami/miniforge/bin/:$PATH"
USER 1001
ENTRYPOINT [ "jupyterhub" ]
@@ -1,75 +0,0 @@
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
services:
postgresql:
image: docker.io/bitnami/postgresql:latest
environment:
- POSTGRESQL_USERNAME=jupyterhub
- POSTGRESQL_PASSWORD=jupyterhub
- POSTGRESQL_DATABASE=jupyterhub
volumes:
- postgresql_data:/bitnami/postgresql
jupyterhub:
image: docker.io/bitnami/jupyterhub:5
user: root
environment:
- JUPYTERHUB_CRYPT_KEY=c31f45e8a4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1
- CONFIGPROXY_AUTH_TOKEN=c31f45e8a4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- jupyterhub_data:/data
command: >
--JupyterHub.spawner_class=dockerspawner.DockerSpawner
--DockerSpawner.image=docker.io/bitnami/jupyter-base-notebook:5
--DockerSpawner.network_name=jupyterhub_default
--JupyterHub.hub_ip=0.0.0.0
--JupyterHub.hub_connect_ip=jupyterhub
--JupyterHub.authenticator_class=dummy
--DummyAuthenticator.password=bitnami
--JupyterHub.cookie_secret_file=/data/jupyterhub_cookie_secret
--JupyterHub.db_url=postgresql://jupyterhub:jupyterhub@postgresql:5432/jupyterhub
--ConfigurableHTTPProxy.should_start=False
--ConfigurableHTTPProxy.api_url=http://proxy:8001
depends_on:
- postgresql
proxy:
image: docker.io/bitnami/configurable-http-proxy:latest
command:
- --ip=0.0.0.0
- --api-ip=0.0.0.0
- --api-port=8001
- --default-target=http://jupyterhub:8081
- --error-target=http://jupyterhub:8081/hub/error
- --port=8000
ports:
- "8000:8000"
environment:
- CONFIGPROXY_AUTH_TOKEN=c31f45e8a4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1
depends_on:
- jupyterhub
jupyter-base-notebook:
image: docker.io/bitnami/jupyter-base-notebook:5
command:
- jupyter
- lab
- --ip=0.0.0.0
- --port=8888
- --no-browser
- --ServerApp.token=''
- --ServerApp.password=''
ports:
- '8888:8888'
volumes:
- 'jupyter_data:/opt/bitnami/jupyterhub-singleuser/'
volumes:
postgresql_data:
driver: local
jupyterhub_data:
driver: local
jupyter_data:
driver: local
@@ -1 +0,0 @@
da2eb4f0907aee453aa3141556c128ed6f176b0fe35c0f6be3b6a317f69cc750 jupyterhub-5.5.2-0-linux-amd64-debian-12.tar.gz
@@ -1 +0,0 @@
210cf766968406c5a39ebbae3400292486fdf10cad10201e6c1cec807354bbe2 jupyterhub-5.5.2-0-linux-arm64-debian-12.tar.gz
@@ -1 +0,0 @@
70c191452882fcb3e96609f0c49bc43ac7a8c84e975ebbc98c84639c2fd72970 miniforge-26.5.3-0-0-linux-amd64-debian-12.tar.gz
@@ -1 +0,0 @@
46df3e2cc4e7e56b9d1de2ee8f6ec86b89c8727be7e12fbba74379993c11c979 miniforge-26.5.3-0-0-linux-arm64-debian-12.tar.gz
@@ -1,2 +0,0 @@
Bitnami containers ship with software bundles. You can find the licenses under:
/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt
@@ -1,27 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -eu
n=0
max=2
export DEBIAN_FRONTEND=noninteractive
until [ $n -gt $max ]; do
set +e
(
apt-get update -qq &&
apt-get install -y --no-install-recommends "$@"
)
CODE=$?
set -e
if [ $CODE -eq 0 ]; then
break
fi
if [ $n -eq $max ]; then
exit $CODE
fi
echo "apt failed, retrying"
n=$(($n + 1))
done
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
@@ -1,24 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -u
if [ $# -eq 0 ]; then
>&2 echo "No arguments provided"
exit 1
fi
script=$1
exit_code="${2:-96}"
fail_if_not_present="${3:-n}"
if test -f "$script"; then
sh $script
if [ $? -ne 0 ]; then
exit $((exit_code))
fi
elif [ "$fail_if_not_present" = "y" ]; then
>&2 echo "script not found: $script"
exit 127
fi
@@ -1,26 +0,0 @@
#!/bin/sh
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
set -eu
n=0
max=2
export DEBIAN_FRONTEND=noninteractive
until [ $n -gt $max ]; do
set +e
(
apt-get autoremove --purge -y "$@"
)
CODE=$?
set -e
if [ $CODE -eq 0 ]; then
break
fi
if [ $n -eq $max ]; then
exit $CODE
fi
echo "apt failed, retrying"
n=$(($n + 1))
done
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives