28 lines
787 B
Docker
28 lines
787 B
Docker
FROM python:3.13-slim
|
|
|
|
# Install system deps
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
nodejs npm \
|
|
git \
|
|
sudo \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install JupyterHub, JupyterLab, notebook (required for singleuser), and DockerSpawner
|
|
RUN pip install --no-cache-dir jupyterhub jupyterlab notebook dockerspawner
|
|
|
|
# Install configurable-http-proxy (required by JupyterHub)
|
|
RUN npm install -g configurable-http-proxy@^4.0.0
|
|
|
|
# Ensure npm global binaries are available in PATH
|
|
ENV PATH="/usr/local/bin:${PATH}"
|
|
|
|
# Create directories
|
|
RUN mkdir -p /srv/jupyterhub /srv/jupyterhub/data
|
|
WORKDIR /srv/jupyterhub
|
|
|
|
COPY jupyterhub_config.py /srv/jupyterhub/
|
|
|
|
EXPOSE 8001
|
|
|
|
CMD ["jupyterhub", "-f", "/srv/jupyterhub/jupyterhub_config.py"]
|