From 7766c719ed4c11dd52a8e0e35195ec82097aebfe Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 22 May 2018 14:13:20 -0700 Subject: [PATCH] Add 2.3-alpine3.7, remove all Alpine 3.4 variants Alpine 3.4 is EOL; see https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases This also makes all `stretch` and `alpine3.7` variants default. --- .travis.yml | 3 +- 2.3/{alpine3.4 => alpine3.7}/Dockerfile | 8 +- 2.4/alpine3.4/Dockerfile | 112 ------------------------ generate-stackbrew-library.sh | 22 ++--- update.sh | 6 +- 5 files changed, 11 insertions(+), 140 deletions(-) rename 2.3/{alpine3.4 => alpine3.7}/Dockerfile (97%) delete mode 100644 2.4/alpine3.4/Dockerfile diff --git a/.travis.yml b/.travis.yml index ec0a55876..83865fdb2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,12 +14,11 @@ env: - VERSION=2.4 VARIANT=jessie/slim - VERSION=2.4 VARIANT=alpine3.7 - VERSION=2.4 VARIANT=alpine3.6 - - VERSION=2.4 VARIANT=alpine3.4 - VERSION=2.3 VARIANT=stretch - VERSION=2.3 VARIANT=stretch/slim - VERSION=2.3 VARIANT=jessie - VERSION=2.3 VARIANT=jessie/slim - - VERSION=2.3 VARIANT=alpine3.4 + - VERSION=2.3 VARIANT=alpine3.7 install: - git clone --depth 1 https://github.com/docker-library/official-images.git ~/official-images diff --git a/2.3/alpine3.4/Dockerfile b/2.3/alpine3.7/Dockerfile similarity index 97% rename from 2.3/alpine3.4/Dockerfile rename to 2.3/alpine3.7/Dockerfile index c405e7416..12c841b10 100644 --- a/2.3/alpine3.4/Dockerfile +++ b/2.3/alpine3.7/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.4 +FROM alpine:3.7 # skip installing gem documentation RUN mkdir -p /usr/local/etc \ @@ -31,8 +31,8 @@ RUN set -ex \ glib-dev \ libc-dev \ libffi-dev \ - openssl \ - openssl-dev \ + libressl \ + libressl-dev \ libxml2-dev \ libxslt-dev \ linux-headers \ @@ -85,7 +85,7 @@ RUN set -ex \ bzip2 \ ca-certificates \ libffi-dev \ - openssl-dev \ + libressl-dev \ procps \ yaml-dev \ zlib-dev \ diff --git a/2.4/alpine3.4/Dockerfile b/2.4/alpine3.4/Dockerfile deleted file mode 100644 index c85050bfb..000000000 --- a/2.4/alpine3.4/Dockerfile +++ /dev/null @@ -1,112 +0,0 @@ -FROM alpine:3.4 - -# skip installing gem documentation -RUN mkdir -p /usr/local/etc \ - && { \ - echo 'install: --no-document'; \ - echo 'update: --no-document'; \ - } >> /usr/local/etc/gemrc - -ENV RUBY_MAJOR 2.4 -ENV RUBY_VERSION 2.4.4 -ENV RUBY_DOWNLOAD_SHA256 1d0034071d675193ca769f64c91827e5f54cb3a7962316a41d5217c7bc6949f0 -ENV RUBYGEMS_VERSION 2.7.7 -ENV BUNDLER_VERSION 1.16.2 - -# some of ruby's build scripts are written in ruby -# we purge system ruby later to make sure our final image uses what we just built -# readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 -RUN set -ex \ - \ - && apk add --no-cache --virtual .ruby-builddeps \ - autoconf \ - bison \ - bzip2 \ - bzip2-dev \ - ca-certificates \ - coreutils \ - dpkg-dev dpkg \ - gcc \ - gdbm-dev \ - glib-dev \ - libc-dev \ - libffi-dev \ - openssl \ - openssl-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - make \ - ncurses-dev \ - procps \ - readline-dev \ - ruby \ - tar \ - xz \ - yaml-dev \ - zlib-dev \ - \ - && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ - && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum -c - \ - \ - && mkdir -p /usr/src/ruby \ - && tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1 \ - && rm ruby.tar.xz \ - \ - && cd /usr/src/ruby \ - \ -# hack in "ENABLE_PATH_CHECK" disabling to suppress: -# warning: Insecure world writable dir - && { \ - echo '#define ENABLE_PATH_CHECK 0'; \ - echo; \ - cat file.c; \ - } > file.c.new \ - && mv file.c.new file.c \ - \ - && autoconf \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ -# the configure script does not detect isnan/isinf as macros - && export ac_cv_func_isnan=yes ac_cv_func_isinf=yes \ - && ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - && make -j "$(nproc)" \ - && 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 .ruby-rundeps $runDeps \ - bzip2 \ - ca-certificates \ - libffi-dev \ - openssl-dev \ - procps \ - yaml-dev \ - zlib-dev \ - && apk del .ruby-builddeps \ - && cd / \ - && rm -r /usr/src/ruby \ - \ - && gem update --system "$RUBYGEMS_VERSION" \ - && gem install bundler --version "$BUNDLER_VERSION" --force \ - && rm -r /root/.gem/ - -# install things globally, for great justice -# and don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_PATH="$GEM_HOME" \ - BUNDLE_BIN="$GEM_HOME/bin" \ - BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -# path recommendation: https://github.com/bundler/bundler/pull/6469#issuecomment-383235438 -ENV PATH $BUNDLE_PATH/gems/bin:$PATH -RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \ - && chmod 777 "$GEM_HOME" "$BUNDLE_BIN" - -CMD [ "irb" ] diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 8b322cd66..a24716506 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -7,16 +7,7 @@ declare -A aliases=( ) defaultDebianSuite='stretch' -declare -A debianSuites=( - [2.2]='jessie' - [2.3]='jessie' - [2.4]='jessie' -) defaultAlpineVersion='3.7' -declare -A alpineVersions=( - [2.2]='3.4' - [2.3]='3.4' -) self="$(basename "$BASH_SOURCE")" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" @@ -81,12 +72,9 @@ join() { } for version in "${versions[@]}"; do - debianSuite="${debianSuites[$version]:-$defaultDebianSuite}" - alpineVersion="${alpineVersions[$version]:-$defaultAlpineVersion}" - for v in \ {stretch,jessie}{,/slim,/onbuild} \ - alpine{3.7,3.6,3.4} \ + alpine{3.7,3.6} \ ; do dir="$version/$v" variant="$(basename "$v")" @@ -117,13 +105,13 @@ for version in "${versions[@]}"; do variantAliases=( "${versionAliases[@]/%/-$variant}" ) case "$variant" in - "$debianSuite") + "$defaultDebianSuite") variantAliases+=( "${versionAliases[@]}" ) ;; - *-"$debianSuite") - variantAliases+=( "${versionAliases[@]/%/-${variant%-$debianSuite}}" ) + *-"$defaultDebianSuite") + variantAliases+=( "${versionAliases[@]/%/-${variant%-$defaultDebianSuite}}" ) ;; - "alpine${alpineVersion}") + "alpine${defaultAlpineVersion}") variantAliases+=( "${versionAliases[@]/%/-alpine}" ) ;; esac diff --git a/update.sh b/update.sh index 5a31edfe2..8a76c0632 100755 --- a/update.sh +++ b/update.sh @@ -66,7 +66,7 @@ for version in "${versions[@]}"; do echo "$version: $fullVersion; rubygems $rubygems, bundler $bundler; $shaVal" for v in \ - alpine{3.4,3.6,3.7} \ + alpine{3.6,3.7} \ {jessie,stretch}{/slim,/onbuild,} \ ; do dir="$version/$v" @@ -97,10 +97,6 @@ for version in "${versions[@]}"; do -e 's/^(FROM (debian|buildpack-deps|alpine)):.*/\1:'"$tag"'/' \ "$template" > "$dir/Dockerfile" - if [ "$variant" = 'alpine3.4' ]; then - sed -ri -e 's/libressl/openssl/g' "$dir/Dockerfile" - fi - case "$v" in */onbuild) ;; *)