Created
October 25, 2020 14:01
-
-
Save NSLog0/1d30b5c0e5710a66f64c0264c7ccf580 to your computer and use it in GitHub Desktop.
Dockerfile for python 3.8 image fork
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" | |
# | |
# PLEASE DO NOT EDIT IT DIRECTLY. | |
# | |
FROM buildpack-deps:buster | |
# ensure local python is preferred over distribution python | |
ENV PATH /usr/local/bin:$PATH | |
# http://bugs.python.org/issue19846 | |
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. | |
ENV LANG C.UTF-8 | |
# extra dependencies (over what buildpack-deps already includes) | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
libbluetooth-dev \ | |
tk-dev \ | |
uuid-dev \ | |
&& rm -rf /var/lib/apt/lists/* | |
ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568 | |
ENV PYTHON_VERSION 3.8.6 | |
RUN set -ex \ | |
\ | |
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ | |
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ | |
&& export GNUPGHOME="$(mktemp -d)" \ | |
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ | |
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \ | |
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \ | |
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \ | |
&& mkdir -p /usr/src/python \ | |
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ | |
&& rm python.tar.xz \ | |
\ | |
&& cd /usr/src/python \ | |
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ | |
&& ./configure \ | |
--build="$gnuArch" \ | |
--enable-loadable-sqlite-extensions \ | |
--enable-optimizations \ | |
--enable-option-checking=fatal \ | |
--enable-shared \ | |
--with-system-expat \ | |
--with-system-ffi \ | |
--without-ensurepip \ | |
&& make -j "$(nproc)" \ | |
&& make install \ | |
&& rm -rf /usr/src/python \ | |
\ | |
&& find /usr/local -depth \ | |
\( \ | |
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ | |
-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \ | |
-o \( -type f -a -name 'wininst-*.exe' \) \ | |
\) -exec rm -rf '{}' + \ | |
\ | |
&& ldconfig \ | |
\ | |
&& python3 --version | |
# make some useful symlinks that are expected to exist | |
RUN cd /usr/local/bin \ | |
&& ln -s idle3 idle \ | |
&& ln -s pydoc3 pydoc \ | |
&& ln -s python3 python \ | |
&& ln -s python3-config python-config | |
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" | |
ENV PYTHON_PIP_VERSION 20.2.4 | |
# https://github.com/pypa/get-pip | |
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/8283828b8fd6f1783daf55a765384e6d8d2c5014/get-pip.py | |
ENV PYTHON_GET_PIP_SHA256 2250ab0a7e70f6fd22b955493f7f5cf1ea53e70b584a84a32573644a045b4bfb | |
RUN set -ex; \ | |
\ | |
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \ | |
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \ | |
\ | |
python get-pip.py \ | |
--disable-pip-version-check \ | |
--no-cache-dir \ | |
"pip==$PYTHON_PIP_VERSION" \ | |
; \ | |
pip --version; \ | |
\ | |
find /usr/local -depth \ | |
\( \ | |
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ | |
-o \ | |
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ | |
\) -exec rm -rf '{}' +; \ | |
rm -f get-pip.py | |
CMD ["python3"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment