diff --git a/.travis.yml b/.travis.yml index 0870069bd..8545dc8d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,8 +7,10 @@ env: - VERSION=2.3 VARIANT=alpine - VERSION=2.2 VARIANT= - VERSION=2.2 VARIANT=slim + - VERSION=2.2 VARIANT=alpine - VERSION=2.1 VARIANT= - VERSION=2.1 VARIANT=slim + - VERSION=2.1 VARIANT=alpine - VERSION=2.0 VARIANT= - VERSION=2.0 VARIANT=slim diff --git a/2.1/alpine/Dockerfile b/2.1/alpine/Dockerfile new file mode 100644 index 000000000..476c609d6 --- /dev/null +++ b/2.1/alpine/Dockerfile @@ -0,0 +1,81 @@ +FROM alpine:3.3 + +ENV RUBY_MAJOR 2.1 +ENV RUBY_VERSION 2.1.8 +ENV RUBY_DOWNLOAD_SHA256 afd832b8d5ecb2e3e1477ec6a9408fdf9898ee73e4c5df17a2b2cb36bd1c355d +ENV RUBYGEMS_VERSION 2.5.1 + +# skip installing gem documentation +RUN echo -e 'install: --no-document\nupdate: --no-document' >> "$HOME/.gemrc" + +RUN set -x \ + && apk add --no-cache --virtual .ruby-builddeps \ + autoconf \ + bison \ + bzip2 \ + bzip2-dev \ + ca-certificates \ + coreutils \ + curl \ + gcc \ + gdbm-dev \ + glib-dev \ + libc-dev \ + libedit-dev \ + libffi-dev \ + libxml2-dev \ + libxslt-dev \ + linux-headers \ + make \ + ncurses-dev \ + openssl-dev \ + procps \ + ruby \ + yaml-dev \ + zlib-dev \ + && curl -fSL -o ruby.tar.gz "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.gz" \ + && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/src \ + && tar -xzf ruby.tar.gz -C /usr/src \ + && mv "/usr/src/ruby-$RUBY_VERSION" /usr/src/ruby \ + && rm ruby.tar.gz \ + && cd /usr/src/ruby \ + && autoconf \ + # the configure script does not detect isnan/isinf as macros + && ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && gem update --system $RUBYGEMS_VERSION \ + && 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 .ruby-rundeps $runDeps \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + openssl-dev \ + yaml-dev \ + procps \ + zlib-dev \ + && apk del .ruby-builddeps \ + && rm -r /usr/src/ruby + +# install things globally, for great justice +ENV GEM_HOME /usr/local/bundle +ENV PATH $GEM_HOME/bin:$PATH + +ENV BUNDLER_VERSION 1.11.2 + +RUN gem install bundler --version "$BUNDLER_VERSION" \ + && bundle config --global path "$GEM_HOME" \ + && bundle config --global bin "$GEM_HOME/bin" + +# don't create ".bundle" in all our apps +ENV BUNDLE_APP_CONFIG $GEM_HOME + +CMD [ "irb" ] diff --git a/2.2/alpine/Dockerfile b/2.2/alpine/Dockerfile new file mode 100644 index 000000000..980c79706 --- /dev/null +++ b/2.2/alpine/Dockerfile @@ -0,0 +1,81 @@ +FROM alpine:3.3 + +ENV RUBY_MAJOR 2.2 +ENV RUBY_VERSION 2.2.4 +ENV RUBY_DOWNLOAD_SHA256 b6eff568b48e0fda76e5a36333175df049b204e91217aa32a65153cc0cdcb761 +ENV RUBYGEMS_VERSION 2.5.1 + +# skip installing gem documentation +RUN echo -e 'install: --no-document\nupdate: --no-document' >> "$HOME/.gemrc" + +RUN set -x \ + && apk add --no-cache --virtual .ruby-builddeps \ + autoconf \ + bison \ + bzip2 \ + bzip2-dev \ + ca-certificates \ + coreutils \ + curl \ + gcc \ + gdbm-dev \ + glib-dev \ + libc-dev \ + libedit-dev \ + libffi-dev \ + libxml2-dev \ + libxslt-dev \ + linux-headers \ + make \ + ncurses-dev \ + openssl-dev \ + procps \ + ruby \ + yaml-dev \ + zlib-dev \ + && curl -fSL -o ruby.tar.gz "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.gz" \ + && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/src \ + && tar -xzf ruby.tar.gz -C /usr/src \ + && mv "/usr/src/ruby-$RUBY_VERSION" /usr/src/ruby \ + && rm ruby.tar.gz \ + && cd /usr/src/ruby \ + && autoconf \ + # the configure script does not detect isnan/isinf as macros + && ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && gem update --system $RUBYGEMS_VERSION \ + && 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 .ruby-rundeps $runDeps \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + openssl-dev \ + yaml-dev \ + procps \ + zlib-dev \ + && apk del .ruby-builddeps \ + && rm -r /usr/src/ruby + +# install things globally, for great justice +ENV GEM_HOME /usr/local/bundle +ENV PATH $GEM_HOME/bin:$PATH + +ENV BUNDLER_VERSION 1.11.2 + +RUN gem install bundler --version "$BUNDLER_VERSION" \ + && bundle config --global path "$GEM_HOME" \ + && bundle config --global bin "$GEM_HOME/bin" + +# don't create ".bundle" in all our apps +ENV BUNDLE_APP_CONFIG $GEM_HOME + +CMD [ "irb" ] diff --git a/update.sh b/update.sh index b18dcb8b3..24f05a7ab 100755 --- a/update.sh +++ b/update.sh @@ -17,6 +17,7 @@ latest_gem_version() { rubygems="$(latest_gem_version rubygems-update)" bundler="$(latest_gem_version bundler)" +travisEnv= for version in "${versions[@]}"; do fullVersion="$(curl -sSL --compressed "http://cache.ruby-lang.org/pub/ruby/$version/" \ | grep -E ' .travis.yml