jupyter/jupyterhub/Dockerfile
2025-07-15 18:40:59 +02:00

49 lines
1.5 KiB
Docker

FROM quay.io/jupyterhub/jupyterhub:latest
# Install system dependencies
USER root
RUN apt-get update && apt-get install -y \
curl \
gnupg \
iproute2 \
iputils-ping \
netcat \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install Docker CLI (needed for DockerSpawner)
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get install -y docker-ce-cli \
&& rm -rf /var/lib/apt/lists/*
# Install Required packages
RUN pip install --no-cache-dir \
dockerspawner \
jupyterhub-nativeauthenticator \
jupyterhub-dummyauthenticator \
nbgrader \
psycopg2-binary
RUN mkdir -p /srv/nbgrader/exchange
RUN chmod -R 777 /srv/nbgrader/exchange
RUN mkdir -p /srv/nbgrader/courses
RUN chown -R 1000:100 /srv/nbgrader
#RUN jupyter nbextension install --sys-prefix --py nbgrader --overwrite
#RUN jupyter nbextension enable --sys-prefix --py nbgrader
#RUN jupyter serverextension enable --sys-prefix --py nbgrader
# Set Workdir
WORKDIR /srv/jupyterhub
# Generate Cookie Secret
RUN openssl rand -hex 32 > /srv/jupyterhub/cookie_secret
RUN chmod 600 /srv/jupyterhub/cookie_secret
#ENV JUPYTERHUB_AUTH_TOKEN=$(openssl rand -hex 32)
EXPOSE 8000
CMD ["jupyterhub", "-f", "/srv/jupyterhub/jupyterhub_config.py"]