From 4a125ef1ad5c8d9d8a7560fcb86c9a7ed3c39dff Mon Sep 17 00:00:00 2001 From: Joe Ferguson Date: Fri, 16 Jan 2015 17:29:38 -0800 Subject: [PATCH 1/2] Initial slim version for 2.1.5 --- 2.1/slim/Dockerfile | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 2.1/slim/Dockerfile diff --git a/2.1/slim/Dockerfile b/2.1/slim/Dockerfile new file mode 100644 index 000000000..58fa6c6b8 --- /dev/null +++ b/2.1/slim/Dockerfile @@ -0,0 +1,55 @@ +FROM debian:jessie + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + libgdbm3 \ + libssl-dev \ + libyaml-dev \ + procps \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV RUBY_MAJOR 2.1 +ENV RUBY_VERSION 2.1.5 + +# some of ruby's build scripts are written in ruby +# we purge this later to make sure our final image uses what we just built +RUN buildDeps=' \ + autoconf \ + bison \ + gcc \ + libbz2-dev \ + libgdbm-dev \ + libglib2.0-dev \ + libncurses-dev \ + libreadline-dev \ + libxml2-dev \ + libxslt-dev \ + make \ + ruby \ + '; \ + set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /usr/src/ruby \ + && curl -SL "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.bz2" \ + | tar -xjC /usr/src/ruby --strip-components=1 \ + && cd /usr/src/ruby \ + && autoconf \ + && ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && rm -r /usr/src/ruby \ + && apt-get purge -y --auto-remove $buildDeps + +# skip installing gem documentation +RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc + +RUN gem install bundler + +CMD [ "irb" ] From 8164fe030868a3fc680dc53277b9572feedf112a Mon Sep 17 00:00:00 2001 From: Joe Ferguson Date: Fri, 23 Jan 2015 15:59:46 -0800 Subject: [PATCH 2/2] Add slim for all the versions --- 1.9/slim/Dockerfile | 55 +++++++++++++++++++++++++++++++++++ 2.0/slim/Dockerfile | 55 +++++++++++++++++++++++++++++++++++ 2.2/slim/Dockerfile | 55 +++++++++++++++++++++++++++++++++++ generate-stackbrew-library.sh | 2 +- update.sh | 4 +-- 5 files changed, 168 insertions(+), 3 deletions(-) create mode 100644 1.9/slim/Dockerfile create mode 100644 2.0/slim/Dockerfile create mode 100644 2.2/slim/Dockerfile diff --git a/1.9/slim/Dockerfile b/1.9/slim/Dockerfile new file mode 100644 index 000000000..00125860a --- /dev/null +++ b/1.9/slim/Dockerfile @@ -0,0 +1,55 @@ +FROM debian:jessie + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + libgdbm3 \ + libssl-dev \ + libyaml-dev \ + procps \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV RUBY_MAJOR 1.9 +ENV RUBY_VERSION 1.9.3-p551 + +# some of ruby's build scripts are written in ruby +# we purge this later to make sure our final image uses what we just built +RUN buildDeps=' \ + autoconf \ + bison \ + gcc \ + libbz2-dev \ + libgdbm-dev \ + libglib2.0-dev \ + libncurses-dev \ + libreadline-dev \ + libxml2-dev \ + libxslt-dev \ + make \ + ruby \ + '; \ + set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /usr/src/ruby \ + && curl -SL "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.bz2" \ + | tar -xjC /usr/src/ruby --strip-components=1 \ + && cd /usr/src/ruby \ + && autoconf \ + && ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && rm -r /usr/src/ruby \ + && apt-get purge -y --auto-remove $buildDeps + +# skip installing gem documentation +RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc + +RUN gem install bundler + +CMD [ "irb" ] diff --git a/2.0/slim/Dockerfile b/2.0/slim/Dockerfile new file mode 100644 index 000000000..f38931a27 --- /dev/null +++ b/2.0/slim/Dockerfile @@ -0,0 +1,55 @@ +FROM debian:jessie + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + libgdbm3 \ + libssl-dev \ + libyaml-dev \ + procps \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV RUBY_MAJOR 2.0 +ENV RUBY_VERSION 2.0.0-p598 + +# some of ruby's build scripts are written in ruby +# we purge this later to make sure our final image uses what we just built +RUN buildDeps=' \ + autoconf \ + bison \ + gcc \ + libbz2-dev \ + libgdbm-dev \ + libglib2.0-dev \ + libncurses-dev \ + libreadline-dev \ + libxml2-dev \ + libxslt-dev \ + make \ + ruby \ + '; \ + set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /usr/src/ruby \ + && curl -SL "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.bz2" \ + | tar -xjC /usr/src/ruby --strip-components=1 \ + && cd /usr/src/ruby \ + && autoconf \ + && ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && rm -r /usr/src/ruby \ + && apt-get purge -y --auto-remove $buildDeps + +# skip installing gem documentation +RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc + +RUN gem install bundler + +CMD [ "irb" ] diff --git a/2.2/slim/Dockerfile b/2.2/slim/Dockerfile new file mode 100644 index 000000000..9dd31021f --- /dev/null +++ b/2.2/slim/Dockerfile @@ -0,0 +1,55 @@ +FROM debian:jessie + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bzip2 \ + ca-certificates \ + curl \ + libffi-dev \ + libgdbm3 \ + libssl-dev \ + libyaml-dev \ + procps \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV RUBY_MAJOR 2.2 +ENV RUBY_VERSION 2.2.0 + +# some of ruby's build scripts are written in ruby +# we purge this later to make sure our final image uses what we just built +RUN buildDeps=' \ + autoconf \ + bison \ + gcc \ + libbz2-dev \ + libgdbm-dev \ + libglib2.0-dev \ + libncurses-dev \ + libreadline-dev \ + libxml2-dev \ + libxslt-dev \ + make \ + ruby \ + '; \ + set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /usr/src/ruby \ + && curl -SL "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.bz2" \ + | tar -xjC /usr/src/ruby --strip-components=1 \ + && cd /usr/src/ruby \ + && autoconf \ + && ./configure --disable-install-doc \ + && make -j"$(nproc)" \ + && make install \ + && rm -r /usr/src/ruby \ + && apt-get purge -y --auto-remove $buildDeps + +# skip installing gem documentation +RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc + +RUN gem install bundler + +CMD [ "irb" ] diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 28c7dafdb..330e680f6 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -31,7 +31,7 @@ for version in "${versions[@]}"; do echo "$va: ${url}@${commit} $version" done - for variant in onbuild wheezy; do + for variant in onbuild slim wheezy; do commit="$(git log -1 --format='format:%H' -- "$version/$variant")" echo for va in "${versionAliases[@]}"; do diff --git a/update.sh b/update.sh index 3c4d4d60d..1522e5755 100755 --- a/update.sh +++ b/update.sh @@ -17,8 +17,8 @@ for version in "${versions[@]}"; do | sort -V | tail -1)" ( set -x - sed -ri 's/^(ENV RUBY_MAJOR) .*/\1 '"$version"'/' "$version/"{,wheezy/}Dockerfile - sed -ri 's/^(ENV RUBY_VERSION) .*/\1 '"$fullVersion"'/' "$version/"{,wheezy/}Dockerfile + sed -ri 's/^(ENV RUBY_MAJOR) .*/\1 '"$version"'/' "$version/"{,wheezy/,slim/}Dockerfile + sed -ri 's/^(ENV RUBY_VERSION) .*/\1 '"$fullVersion"'/' "$version/"{,wheezy/,slim/}Dockerfile sed -ri 's/^(FROM ruby):.*/\1:'"$fullVersion"'/' "$version/"*"/Dockerfile" ) done