kopia lustrzana https://github.com/jupyterhub/repo2docker
use multi-stage build
- python 3.7 - build wheels in first stage, install in second - run with slim image by default instead of full (~200MB vs ~1GB)pull/527/head
rodzic
bdd32b292a
commit
58cc9fcd4c
31
Dockerfile
31
Dockerfile
|
@ -1,9 +1,28 @@
|
||||||
FROM python:3.6.3
|
ARG PYTHON_VERSION=3.7
|
||||||
|
FROM python:${PYTHON_VERSION}
|
||||||
|
|
||||||
|
# build wheels in first image
|
||||||
|
ADD . /tmp/src
|
||||||
|
RUN mkdir /tmp/wheelhouse \
|
||||||
|
&& cd /tmp/wheelhouse \
|
||||||
|
&& pip3 wheel --no-cache-dir /tmp/src
|
||||||
|
|
||||||
|
# run with slim variant instead of full
|
||||||
|
# since we won't need compilers and friends
|
||||||
|
FROM python:${PYTHON_VERSION}-slim
|
||||||
|
|
||||||
|
# we do need git, though
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get -y install --no-install-recommends git \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install repo2docker
|
||||||
|
COPY --from=0 /tmp/wheelhouse /tmp/wheelhouse
|
||||||
|
RUN pip3 install --no-cache-dir /tmp/wheelhouse/*.whl
|
||||||
|
|
||||||
|
# add git-credential helper
|
||||||
|
COPY ./docker/git-credential-env /usr/local/bin/git-credential-env
|
||||||
|
RUN git config --system credential.helper env
|
||||||
|
|
||||||
# Used for testing purpose in ports.py
|
# Used for testing purpose in ports.py
|
||||||
EXPOSE 52000
|
EXPOSE 52000
|
||||||
RUN mkdir /tmp/src
|
|
||||||
ADD . /tmp/src
|
|
||||||
RUN pip3 install --no-cache-dir /tmp/src
|
|
||||||
RUN cp /tmp/src/docker/git-credential-env /usr/local/bin/git-credential-env && \
|
|
||||||
git config --system credential.helper env
|
|
||||||
|
|
Ładowanie…
Reference in New Issue