Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
python/3.10/bullseye/Dockerfile
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
114 lines (104 sloc)
3.4 KB
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 "apply-templates.sh" | |
| # | |
| # PLEASE DO NOT EDIT IT DIRECTLY. | |
| # | |
| FROM buildpack-deps:bullseye | |
| # 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 | |
| # runtime dependencies | |
| RUN set -eux; \ | |
| 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 A035C8C19219BA821ECEA86B64E628F8D684696D | |
| ENV PYTHON_VERSION 3.10.9 | |
| RUN set -eux; \ | |
| \ | |
| 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"; \ | |
| GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \ | |
| gpg --batch --keyserver hkps://keys.openpgp.org --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 --extract --directory /usr/src/python --strip-components=1 --file 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-lto \ | |
| --with-system-expat \ | |
| --without-ensurepip \ | |
| ; \ | |
| nproc="$(nproc)"; \ | |
| make -j "$nproc" \ | |
| ; \ | |
| make install; \ | |
| \ | |
| # enable GDB to load debugging data: https://github.com/docker-library/python/pull/701 | |
| bin="$(readlink -ve /usr/local/bin/python3)"; \ | |
| dir="$(dirname "$bin")"; \ | |
| mkdir -p "/usr/share/gdb/auto-load/$dir"; \ | |
| cp -vL Tools/gdb/libpython.py "/usr/share/gdb/auto-load/$bin-gdb.py"; \ | |
| \ | |
| cd /; \ | |
| 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 'libpython*.a' \) \) \ | |
| \) -exec rm -rf '{}' + \ | |
| ; \ | |
| \ | |
| ldconfig; \ | |
| \ | |
| python3 --version | |
| # make some useful symlinks that are expected to exist ("/usr/local/bin/python" and friends) | |
| RUN set -eux; \ | |
| for src in idle3 pydoc3 python3 python3-config; do \ | |
| dst="$(echo "$src" | tr -d 3)"; \ | |
| [ -s "/usr/local/bin/$src" ]; \ | |
| [ ! -e "/usr/local/bin/$dst" ]; \ | |
| ln -svT "$src" "/usr/local/bin/$dst"; \ | |
| done | |
| # if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" | |
| ENV PYTHON_PIP_VERSION 22.3.1 | |
| # https://github.com/docker-library/python/issues/365 | |
| ENV PYTHON_SETUPTOOLS_VERSION 65.5.0 | |
| # https://github.com/pypa/get-pip | |
| ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/66030fa03382b4914d4c4d0896961a0bdeeeb274/public/get-pip.py | |
| ENV PYTHON_GET_PIP_SHA256 1e501cf004eac1b7eb1f97266d28f995ae835d30250bec7f8850562703067dc6 | |
| RUN set -eux; \ | |
| \ | |
| wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \ | |
| echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; \ | |
| \ | |
| export PYTHONDONTWRITEBYTECODE=1; \ | |
| \ | |
| python get-pip.py \ | |
| --disable-pip-version-check \ | |
| --no-cache-dir \ | |
| --no-compile \ | |
| "pip==$PYTHON_PIP_VERSION" \ | |
| "setuptools==$PYTHON_SETUPTOOLS_VERSION" \ | |
| ; \ | |
| rm -f get-pip.py; \ | |
| \ | |
| pip --version | |
| CMD ["python3"] |