mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-12 04:23:01 +00:00
102 lines
2.5 KiB
Docker
102 lines
2.5 KiB
Docker
# 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 <jupyter@googlegroups.com>"
|
|
LABEL org.jupyter.service="jupyterhub"
|
|
|
|
CMD ["jupyterhub"]
|