From 635ea5d58b53d165f7bedae90f8933c720a58150 Mon Sep 17 00:00:00 2001 From: Jonathan Stewmon Date: Fri, 1 Jul 2016 12:30:37 -0500 Subject: [PATCH 1/2] add python-3.6 --- .travis.yml | 3 ++ 3.6/Dockerfile | 49 +++++++++++++++++++++++++++++ 3.6/alpine/Dockerfile | 70 +++++++++++++++++++++++++++++++++++++++++ 3.6/onbuild/Dockerfile | 9 ++++++ 3.6/slim/Dockerfile | 71 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 202 insertions(+) create mode 100644 3.6/Dockerfile create mode 100644 3.6/alpine/Dockerfile create mode 100644 3.6/onbuild/Dockerfile create mode 100644 3.6/slim/Dockerfile diff --git a/.travis.yml b/.travis.yml index 1746dbb3d..24b2e11b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: bash services: docker env: + - VERSION=3.6 VARIANT= + - VERSION=3.6 VARIANT=slim + - VERSION=3.6 VARIANT=alpine - VERSION=3.5 VARIANT= - VERSION=3.5 VARIANT=slim - VERSION=3.5 VARIANT=alpine diff --git a/3.6/Dockerfile b/3.6/Dockerfile new file mode 100644 index 000000000..d4193d298 --- /dev/null +++ b/3.6/Dockerfile @@ -0,0 +1,49 @@ +FROM buildpack-deps:jessie + +# remove several traces of debian python +RUN apt-get purge -y python.* + +# 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 + +ENV PYTHON_VERSION 3.6.0a2 + +# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" +ENV PYTHON_PIP_VERSION 8.1.2 + +RUN set -ex \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && export GNUPGHOME="$(mktemp -d)" \ + && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --batch --verify python.tar.xz.asc python.tar.xz \ + && rm -r "$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 \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && [ "$(pip list | awk -F '[ ()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \ + && find /usr/local -depth \ + \( \ + \( -type d -a -name test -o -name tests \) \ + -o \ + \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + \) -exec rm -rf '{}' + \ + && rm -rf /usr/src/python ~/.cache + +# make some useful symlinks that are expected to exist +RUN cd /usr/local/bin \ + && ln -s easy_install-3.6 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python3-config python-config + +CMD ["python3"] diff --git a/3.6/alpine/Dockerfile b/3.6/alpine/Dockerfile new file mode 100644 index 000000000..8b4097dae --- /dev/null +++ b/3.6/alpine/Dockerfile @@ -0,0 +1,70 @@ +FROM alpine:3.4 + +# 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 + +ENV PYTHON_VERSION 3.6.0a2 + +# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" +ENV PYTHON_PIP_VERSION 8.1.2 + +RUN set -ex \ + && apk add --no-cache --virtual .fetch-deps curl gnupg \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && export GNUPGHOME="$(mktemp -d)" \ + && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --batch --verify python.tar.xz.asc python.tar.xz \ + && rm -r "$GNUPGHOME" python.tar.xz.asc \ + && mkdir -p /usr/src \ + && tar -xJC /usr/src -f python.tar.xz \ + && mv "/usr/src/Python-$PYTHON_VERSION" /usr/src/python \ + && rm python.tar.xz \ + && apk del .fetch-deps \ + \ + && apk add --no-cache --virtual .build-deps \ + bzip2-dev \ + gcc \ + libc-dev \ + linux-headers \ + make \ + ncurses-dev \ + openssl-dev \ + pax-utils \ + readline-dev \ + sqlite-dev \ + xz-dev \ + zlib-dev \ + && cd /usr/src/python \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && [ "$(pip list | awk -F '[ ()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \ + && find /usr/local -depth \ + \( \ + \( -type d -a -name test -o -name tests \) \ + -o \ + \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + \) -exec rm -rf '{}' + \ + && runDeps="$( \ + scanelf --needed --nobanner --recursive /usr/local \ + | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ + | sort -u \ + | xargs -r apk info --installed \ + | sort -u \ + )" \ + && apk add --virtual .python-rundeps $runDeps \ + && apk del .build-deps \ + && rm -rf /usr/src/python ~/.cache + +# make some useful symlinks that are expected to exist +RUN cd /usr/local/bin \ + && ln -s easy_install-3.6 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python3-config python-config + +CMD ["python3"] diff --git a/3.6/onbuild/Dockerfile b/3.6/onbuild/Dockerfile new file mode 100644 index 000000000..865aaa84c --- /dev/null +++ b/3.6/onbuild/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.6 + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +ONBUILD COPY requirements.txt /usr/src/app/ +ONBUILD RUN pip install --no-cache-dir -r requirements.txt + +ONBUILD COPY . /usr/src/app diff --git a/3.6/slim/Dockerfile b/3.6/slim/Dockerfile new file mode 100644 index 000000000..7490abd6c --- /dev/null +++ b/3.6/slim/Dockerfile @@ -0,0 +1,71 @@ +FROM debian:jessie + +# remove several traces of debian python +RUN apt-get purge -y python.* + +# 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 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + libsqlite3-0 \ + libssl1.0.0 \ + && rm -rf /var/lib/apt/lists/* + +ENV PYTHON_VERSION 3.6.0a2 + +# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" +ENV PYTHON_PIP_VERSION 8.1.2 + +RUN set -ex \ + && buildDeps=' \ + curl \ + gcc \ + libbz2-dev \ + libc6-dev \ + liblzma-dev \ + libncurses-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + make \ + xz-utils \ + zlib1g-dev \ + ' \ + && apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && export GNUPGHOME="$(mktemp -d)" \ + && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --batch --verify python.tar.xz.asc python.tar.xz \ + && rm -r "$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 \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && [ "$(pip list | awk -F '[ ()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \ + && find /usr/local -depth \ + \( \ + \( -type d -a -name test -o -name tests \) \ + -o \ + \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + \) -exec rm -rf '{}' + \ + && apt-get purge -y --auto-remove $buildDeps \ + && rm -rf /usr/src/python ~/.cache + +# make some useful symlinks that are expected to exist +RUN cd /usr/local/bin \ + && ln -s easy_install-3.6 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python3-config python-config + +CMD ["python3"] From d92b2e00353ad8f20f6d5c658802741c33ebbd7d Mon Sep 17 00:00:00 2001 From: Jonathan Stewmon Date: Fri, 1 Jul 2016 12:54:12 -0500 Subject: [PATCH 2/2] use Ned Deily's gpg key --- 3.6/Dockerfile | 5 ++++- 3.6/alpine/Dockerfile | 5 ++++- 3.6/slim/Dockerfile | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/3.6/Dockerfile b/3.6/Dockerfile index d4193d298..2a57be95b 100644 --- a/3.6/Dockerfile +++ b/3.6/Dockerfile @@ -7,6 +7,9 @@ RUN apt-get purge -y python.* # > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. ENV LANG C.UTF-8 +# gpg: key AA65421D: public key "Ned Deily (Python release signing key) " imported +ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D + ENV PYTHON_VERSION 3.6.0a2 # if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" @@ -16,7 +19,7 @@ RUN set -ex \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ && export GNUPGHOME="$(mktemp -d)" \ - && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ && gpg --batch --verify python.tar.xz.asc python.tar.xz \ && rm -r "$GNUPGHOME" python.tar.xz.asc \ && mkdir -p /usr/src/python \ diff --git a/3.6/alpine/Dockerfile b/3.6/alpine/Dockerfile index 8b4097dae..2f157f73d 100644 --- a/3.6/alpine/Dockerfile +++ b/3.6/alpine/Dockerfile @@ -4,6 +4,9 @@ FROM alpine:3.4 # > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. ENV LANG C.UTF-8 +# gpg: key AA65421D: public key "Ned Deily (Python release signing key) " imported +ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D + ENV PYTHON_VERSION 3.6.0a2 # if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" @@ -14,7 +17,7 @@ RUN set -ex \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ && export GNUPGHOME="$(mktemp -d)" \ - && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ && gpg --batch --verify python.tar.xz.asc python.tar.xz \ && rm -r "$GNUPGHOME" python.tar.xz.asc \ && mkdir -p /usr/src \ diff --git a/3.6/slim/Dockerfile b/3.6/slim/Dockerfile index 7490abd6c..052df71eb 100644 --- a/3.6/slim/Dockerfile +++ b/3.6/slim/Dockerfile @@ -7,6 +7,9 @@ RUN apt-get purge -y python.* # > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. ENV LANG C.UTF-8 +# gpg: key AA65421D: public key "Ned Deily (Python release signing key) " imported +ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D + RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ libsqlite3-0 \ @@ -37,7 +40,7 @@ RUN set -ex \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ && export GNUPGHOME="$(mktemp -d)" \ - && curl -fSL https://www.python.org/static/files/pubkeys.txt | gpg --import \ + && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ && gpg --batch --verify python.tar.xz.asc python.tar.xz \ && rm -r "$GNUPGHOME" python.tar.xz.asc \ && mkdir -p /usr/src/python \ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy