From e62ccd8047740eef021d74700202ee827947e4ad Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Thu, 15 May 2025 14:57:36 +0800 Subject: [PATCH] updated Ganymede jupyterhub image --- jupyter-ganymede/Dockerfile | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/jupyter-ganymede/Dockerfile b/jupyter-ganymede/Dockerfile index fd6c59d..a1ed5e6 100644 --- a/jupyter-ganymede/Dockerfile +++ b/jupyter-ganymede/Dockerfile @@ -1,25 +1,40 @@ -FROM alpine:3.19 AS build +FROM alpine:3.21 AS build-base RUN --mount=type=cache,target=/var/cache/apk/,sharing=locked \ apk update &&\ - apk add python3 python3-dev openjdk21-jre pipx gcc g++ musl-dev linux-headers which curl libffi-dev -RUN curl -O https://repo1.maven.org/maven2/dev/hcf/ganymede/ganymede/2.1.2.20230910/ganymede-2.1.2.20230910.jar + apk add python3 python3-dev pipx gcc g++ musl-dev linux-headers which curl libffi-dev git RUN adduser jovyan -u 1000 --system -s /bin/sh -h /home/jovyan + +FROM build-base AS java-build +RUN --mount=type=cache,target=/var/cache/apk/,sharing=locked \ + apk add openjdk11-jdk maven +USER jovyan +WORKDIR /home/jovyan +#RUN curl -O https://repo1.maven.org/maven2/dev/hcf/ganymede/ganymede/2.1.2.20230910/ganymede-2.1.2.20230910.jar +#ADD --chown=jovyan:jovyan https://github.com/allen-ball/ganymede.git ganymede +RUN git clone https://github.com/allen-ball/ganymede.git ganymede +WORKDIR /home/jovyan/ganymede +RUN --mount=type=cache,target=/home/jovyan/.m2/,uid=1000,gid=1000,sharing=locked mvn -Dmaven.test.skip=true package + +FROM build-base AS python-build +RUN --mount=type=cache,target=/var/cache/apk/,sharing=locked \ + apk add openjdk21-jre USER jovyan WORKDIR /home/jovyan RUN python -m venv venv -RUN venv/bin/pip install jupyter-core -RUN venv/bin/pip install notebook==5.7.16 +RUN --mount=type=cache,target=/home/jovyan/.cache/pip,uid=1000,gid=1000 venv/bin/pip install jupyter-core +RUN --mount=type=cache,target=/home/jovyan/.cache/pip,uid=1000,gid=1000 venv/bin/pip install notebook jupyterlab ENV PATH="/home/jovyan/venv/bin/:$PATH" -RUN java -jar /ganymede-2.1.2.20230910.jar -i --copy-jar=true -RUN venv/bin/pip install jupyterhub +RUN --mount=type=bind,from=java-build,src=/home/jovyan/ganymede/ganymede/target/ganymede-2.1.3-SNAPSHOT.jar,target=/home/jovyan/ganymede.jar\ + java -jar /home/jovyan/ganymede.jar -i --copy-jar=true +RUN --mount=type=cache,target=/home/jovyan/.cache/pip,uid=1000,gid=1000 venv/bin/pip install jupyterhub -FROM alpine:3.19 +FROM alpine:3.21 RUN --mount=type=cache,target=/var/cache/apk/,sharing=locked \ apk update &&\ apk add python3 openjdk21-jre RUN adduser jovyan -u 1000 --system -s /bin/sh -h /home/jovyan USER jovyan -COPY --from=build /home/jovyan /home/jovyan +COPY --from=python-build /home/jovyan /home/jovyan COPY jupyter_server_config.py docker_healthcheck.py /etc/jupyter/ COPY start-notebook.py start-singleuser.py /usr/local/bin/ RUN mkdir /home/jovyan/work