49 lines
1.5 KiB
Docker
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"]
|