# An incomplete base Docker image for running JupyterHub # # Add your configuration to create a complete derivative Docker image. # # Include your configuration settings by starting with one of two options: # # Option 1: # # FROM jupyterhub/jupyterhub:latest # # And put your configuration file jupyterhub_config.py in /srv/jupyterhub/jupyterhub_config.py. # # Option 2: # # Or you can create your jupyterhub config and database on the host machine, and mount it with: # # docker run -v $PWD:/srv/jupyterhub -t jupyterhub/jupyterhub # # NOTE # If you base on jupyterhub/jupyterhub-onbuild # your jupyterhub_config.py will be added automatically # from your docker directory. ARG BASE_IMAGE=ubuntu:focal-20200729@sha256:6f2fb2f9fb5582f8b587837afd6ea8f37d8d1d9e41168c90f410a6ef15fa8ce5 FROM $BASE_IMAGE AS builder USER root ENV DEBIAN_FRONTEND noninteractive RUN apt-get update \ && apt-get install -yq --no-install-recommends \ build-essential \ ca-certificates \ locales \ python3-dev \ python3-pip \ python3-pycurl \ nodejs \ npm \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN python3 -m pip install --upgrade setuptools pip wheel # copy everything except whats in .dockerignore, its a # compromise between needing to rebuild and maintaining # what needs to be part of the build COPY . /src/jupyterhub/ WORKDIR /src/jupyterhub # Build client component packages (they will be copied into ./share and # packaged with the built wheel.) RUN python3 setup.py bdist_wheel RUN python3 -m pip wheel --wheel-dir wheelhouse dist/*.whl FROM $BASE_IMAGE USER root ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -yq --no-install-recommends \ ca-certificates \ curl \ gnupg \ locales \ python3-pip \ python3-pycurl \ nodejs \ npm \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* ENV SHELL=/bin/bash \ LC_ALL=en_US.UTF-8 \ LANG=en_US.UTF-8 \ LANGUAGE=en_US.UTF-8 RUN locale-gen $LC_ALL # always make sure pip is up to date! RUN python3 -m pip install --no-cache --upgrade setuptools pip RUN npm install -g configurable-http-proxy@^4.2.0 \ && rm -rf ~/.npm # install the wheels we built in the first stage COPY --from=builder /src/jupyterhub/wheelhouse /tmp/wheelhouse RUN python3 -m pip install --no-cache /tmp/wheelhouse/* RUN mkdir -p /srv/jupyterhub/ WORKDIR /srv/jupyterhub/ EXPOSE 8000 LABEL maintainer="Jupyter Project " LABEL org.jupyter.service="jupyterhub" CMD ["jupyterhub"]