From a8eaaf400780f2b92422829a01cbd6368eed32ee Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 22 May 2018 14:30:27 -0700 Subject: [PATCH] Remove Alpine 3.4 variants (EOL) See https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases --- .travis.yml | 6 +- 2.7/alpine3.4/Dockerfile | 113 -------------------- 3.4/{alpine3.4 => alpine3.7}/Dockerfile | 12 ++- 3.5/{alpine3.4 => alpine3.7}/Dockerfile | 12 ++- 3.6/alpine3.4/Dockerfile | 130 ------------------------ generate-stackbrew-library.sh | 24 +---- update.sh | 3 +- 7 files changed, 22 insertions(+), 278 deletions(-) delete mode 100644 2.7/alpine3.4/Dockerfile rename 3.4/{alpine3.4 => alpine3.7}/Dockerfile (96%) rename 3.5/{alpine3.4 => alpine3.7}/Dockerfile (96%) delete mode 100644 3.6/alpine3.4/Dockerfile diff --git a/.travis.yml b/.travis.yml index e03f6e5d5..0ec08608c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,14 +11,13 @@ env: - VERSION=3.6 VARIANT=jessie/slim - VERSION=3.6 VARIANT=alpine3.7 - VERSION=3.6 VARIANT=alpine3.6 - - VERSION=3.6 VARIANT=alpine3.4 - VERSION=3.5 VARIANT=jessie - VERSION=3.5 VARIANT=jessie/slim - - VERSION=3.5 VARIANT=alpine3.4 + - VERSION=3.5 VARIANT=alpine3.7 - VERSION=3.4 VARIANT=jessie - VERSION=3.4 VARIANT=jessie/slim - VERSION=3.4 VARIANT=wheezy - - VERSION=3.4 VARIANT=alpine3.4 + - VERSION=3.4 VARIANT=alpine3.7 - VERSION=2.7 VARIANT=stretch - VERSION=2.7 VARIANT=stretch/slim - VERSION=2.7 VARIANT=jessie @@ -26,7 +25,6 @@ env: - VERSION=2.7 VARIANT=wheezy - VERSION=2.7 VARIANT=alpine3.7 - VERSION=2.7 VARIANT=alpine3.6 - - VERSION=2.7 VARIANT=alpine3.4 install: - git clone https://github.com/docker-library/official-images.git ~/official-images diff --git a/2.7/alpine3.4/Dockerfile b/2.7/alpine3.4/Dockerfile deleted file mode 100644 index 6d65eda54..000000000 --- a/2.7/alpine3.4/Dockerfile +++ /dev/null @@ -1,113 +0,0 @@ -FROM alpine:3.4 - -# 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 -# https://github.com/docker-library/python/issues/147 -ENV PYTHONIOENCODING UTF-8 - -# install ca-certificates so that HTTPS works consistently -# the other runtime dependencies for Python are installed later -RUN apk add --no-cache ca-certificates - -ENV GPG_KEY C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF -ENV PYTHON_VERSION 2.7.15 - -RUN set -ex \ - && apk add --no-cache --virtual .fetch-deps \ - gnupg \ - openssl \ - tar \ - xz \ - \ - && 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 --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ - && gpg --batch --verify python.tar.xz.asc python.tar.xz \ - && 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 \ - \ - && apk add --no-cache --virtual .build-deps \ - bzip2-dev \ - coreutils \ - dpkg-dev dpkg \ - gcc \ - gdbm-dev \ - libc-dev \ - linux-headers \ - make \ - ncurses-dev \ - openssl \ - openssl-dev \ - pax-utils \ - readline-dev \ - sqlite-dev \ - tcl-dev \ - tk \ - tk-dev \ - zlib-dev \ -# add build deps before removing fetch deps in case there's overlap - && apk del .fetch-deps \ - \ - && cd /usr/src/python \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ - && ./configure \ - --build="$gnuArch" \ - --enable-shared \ - --enable-unicode=ucs4 \ - && make -j "$(nproc)" \ -# set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit() -# https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0 - EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \ - && make install \ - \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .python-rundeps $runDeps \ - && apk del .build-deps \ - \ - && 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 - -# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" -ENV PYTHON_PIP_VERSION 10.0.1 - -RUN set -ex; \ - \ - apk add --no-cache --virtual .fetch-deps openssl; \ - \ - wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ - \ - apk del .fetch-deps; \ - \ - 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 \ - \( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ - \) -exec rm -rf '{}' +; \ - rm -f get-pip.py - -CMD ["python2"] diff --git a/3.4/alpine3.4/Dockerfile b/3.4/alpine3.7/Dockerfile similarity index 96% rename from 3.4/alpine3.4/Dockerfile rename to 3.4/alpine3.7/Dockerfile index aef55330c..9a42e59da 100644 --- a/3.4/alpine3.4/Dockerfile +++ b/3.4/alpine3.7/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM alpine:3.4 +FROM alpine:3.7 # ensure local python is preferred over distribution python ENV PATH /usr/local/bin:$PATH @@ -23,7 +23,7 @@ ENV PYTHON_VERSION 3.4.8 RUN set -ex \ && apk add --no-cache --virtual .fetch-deps \ gnupg \ - openssl \ + libressl \ tar \ xz \ \ @@ -46,11 +46,13 @@ RUN set -ex \ gdbm-dev \ libc-dev \ libffi-dev \ + libnsl-dev \ + libtirpc-dev \ linux-headers \ make \ ncurses-dev \ - openssl \ - openssl-dev \ + libressl \ + libressl-dev \ pax-utils \ readline-dev \ sqlite-dev \ @@ -106,7 +108,7 @@ ENV PYTHON_PIP_VERSION 10.0.1 RUN set -ex; \ \ - apk add --no-cache --virtual .fetch-deps openssl; \ + apk add --no-cache --virtual .fetch-deps libressl; \ \ wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ \ diff --git a/3.5/alpine3.4/Dockerfile b/3.5/alpine3.7/Dockerfile similarity index 96% rename from 3.5/alpine3.4/Dockerfile rename to 3.5/alpine3.7/Dockerfile index 1a1af4943..d442a77e9 100644 --- a/3.5/alpine3.4/Dockerfile +++ b/3.5/alpine3.7/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM alpine:3.4 +FROM alpine:3.7 # ensure local python is preferred over distribution python ENV PATH /usr/local/bin:$PATH @@ -23,7 +23,7 @@ ENV PYTHON_VERSION 3.5.5 RUN set -ex \ && apk add --no-cache --virtual .fetch-deps \ gnupg \ - openssl \ + libressl \ tar \ xz \ \ @@ -46,11 +46,13 @@ RUN set -ex \ gdbm-dev \ libc-dev \ libffi-dev \ + libnsl-dev \ + libtirpc-dev \ linux-headers \ make \ ncurses-dev \ - openssl \ - openssl-dev \ + libressl \ + libressl-dev \ pax-utils \ readline-dev \ sqlite-dev \ @@ -106,7 +108,7 @@ ENV PYTHON_PIP_VERSION 10.0.1 RUN set -ex; \ \ - apk add --no-cache --virtual .fetch-deps openssl; \ + apk add --no-cache --virtual .fetch-deps libressl; \ \ wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ \ diff --git a/3.6/alpine3.4/Dockerfile b/3.6/alpine3.4/Dockerfile deleted file mode 100644 index 59c88f576..000000000 --- a/3.6/alpine3.4/Dockerfile +++ /dev/null @@ -1,130 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM alpine:3.4 - -# 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 - -# install ca-certificates so that HTTPS works consistently -# the other runtime dependencies for Python are installed later -RUN apk add --no-cache ca-certificates - -ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D -ENV PYTHON_VERSION 3.6.5 - -RUN set -ex \ - && apk add --no-cache --virtual .fetch-deps \ - gnupg \ - openssl \ - tar \ - xz \ - \ - && 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 --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ - && gpg --batch --verify python.tar.xz.asc python.tar.xz \ - && 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 \ - \ - && apk add --no-cache --virtual .build-deps \ - bzip2-dev \ - coreutils \ - dpkg-dev dpkg \ - expat-dev \ - gcc \ - gdbm-dev \ - libc-dev \ - libffi-dev \ - linux-headers \ - make \ - ncurses-dev \ - openssl \ - openssl-dev \ - pax-utils \ - readline-dev \ - sqlite-dev \ - tcl-dev \ - tk \ - tk-dev \ - xz-dev \ - zlib-dev \ -# add build deps before removing fetch deps in case there's overlap - && apk del .fetch-deps \ - \ - && cd /usr/src/python \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ - && ./configure \ - --build="$gnuArch" \ - --enable-loadable-sqlite-extensions \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --without-ensurepip \ - && make -j "$(nproc)" \ -# set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit() -# https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0 - EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \ - && make install \ - \ - && runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )" \ - && apk add --virtual .python-rundeps $runDeps \ - && apk del .build-deps \ - \ - && 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 - -# 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 ''" -ENV PYTHON_PIP_VERSION 10.0.1 - -RUN set -ex; \ - \ - apk add --no-cache --virtual .fetch-deps openssl; \ - \ - wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ - \ - apk del .fetch-deps; \ - \ - 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 \ - \( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ - \) -exec rm -rf '{}' +; \ - rm -f get-pip.py - -CMD ["python3"] diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 697bb675d..47a396d86 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -8,19 +8,7 @@ declare -A aliases=( ) defaultDebianSuite='stretch' -declare -A debianSuites=( - [2.7]='jessie' - [3.4]='jessie' - [3.5]='jessie' - [3.6]='jessie' -) defaultAlpineVersion='3.7' -declare -A alpineVersions=( - [2.7]='3.4' - [3.4]='3.4' - [3.5]='3.4' - [3.6]='3.4' -) self="$(basename "$BASH_SOURCE")" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" @@ -86,12 +74,10 @@ join() { for version in "${versions[@]}"; do rcVersion="${version%-rc}" - debianSuite="${debianSuites[$rcVersion]:-$defaultDebianSuite}" - alpineVersion="${alpineVersions[$rcVersion]:-$defaultAlpineVersion}" for v in \ {stretch,jessie,wheezy}{,/slim,/onbuild} \ - alpine{3.7,3.6,3.4} \ + alpine{3.7,3.6} \ windows/windowsservercore-{ltsc2016,1709} \ windows/nanoserver-{sac2016,1709} \ ; do @@ -124,10 +110,10 @@ for version in "${versions[@]}"; do variantAliases=( "${versionAliases[@]/%/-$variant}" ) case "$variant" in - *-"$debianSuite") # "slim-stretch", etc need "slim" - variantAliases+=( "${versionAliases[@]/%/-${variant%-$debianSuite}}" ) + *-"$defaultDebianSuite") # "slim-stretch", etc need "slim" + variantAliases+=( "${versionAliases[@]/%/-${variant%-$defaultDebianSuite}}" ) ;; - "alpine${alpineVersion}") + "alpine${defaultAlpineVersion}") variantAliases+=( "${versionAliases[@]/%/-alpine}" ) ;; esac @@ -153,7 +139,7 @@ for version in "${versions[@]}"; do break fi done - if [ "$variant" = "$debianSuite" ] || [[ "$variant" == 'windowsservercore'* ]]; then + if [ "$variant" = "$defaultDebianSuite" ] || [[ "$variant" == 'windowsservercore'* ]]; then sharedTags+=( "${versionAliases[@]}" ) fi diff --git a/update.sh b/update.sh index 47d6bcc50..0b38fdee5 100755 --- a/update.sh +++ b/update.sh @@ -110,7 +110,7 @@ for version in "${versions[@]}"; do echo "$version: $fullVersion" for v in \ - alpine{3.4,3.6,3.7} \ + alpine{3.6,3.7} \ {wheezy,jessie,stretch}{/slim,/onbuild,} \ windows/nanoserver-{1709,sac2016} \ windows/windowsservercore-{1709,ltsc2016} \ @@ -148,7 +148,6 @@ for version in "${versions[@]}"; do "$dir/Dockerfile" case "$variant" in - alpine3.4) sed -ri -e 's/libressl/openssl/g' "$dir/Dockerfile" ;; wheezy) sed -ri -e 's/dpkg-architecture --query /dpkg-architecture -q/g' "$dir/Dockerfile" ;; esac