1
0
Fork 0
mirror of https://github.com/docker-library/ruby.git synced 2022-11-09 11:41:34 -05:00

Update "slim" and "alpine" variants to include libgmp

This commit is contained in:
Tianon Gravi 2019-02-28 16:24:23 -08:00
parent f35eefc367
commit eae22dc2df
23 changed files with 107 additions and 70 deletions

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION 2.3.8
ENV RUBY_DOWNLOAD_SHA256 910f635d84fd0d81ac9bdee0731279e6026cb4cd1315bbbb5dfb22e09c5c1dfe ENV RUBY_DOWNLOAD_SHA256 910f635d84fd0d81ac9bdee0731279e6026cb4cd1315bbbb5dfb22e09c5c1dfe
ENV RUBYGEMS_VERSION 3.0.1 ENV RUBYGEMS_VERSION 3.0.1
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION 3.0.1
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION 2.3.8
ENV RUBY_DOWNLOAD_SHA256 910f635d84fd0d81ac9bdee0731279e6026cb4cd1315bbbb5dfb22e09c5c1dfe ENV RUBY_DOWNLOAD_SHA256 910f635d84fd0d81ac9bdee0731279e6026cb4cd1315bbbb5dfb22e09c5c1dfe
ENV RUBYGEMS_VERSION 3.0.1 ENV RUBYGEMS_VERSION 3.0.1
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION 3.0.1
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION 2.4.5
ENV RUBY_DOWNLOAD_SHA256 2f0cdcce9989f63ef7c2939bdb17b1ef244c4f384d85b8531d60e73d8cc31eeb ENV RUBY_DOWNLOAD_SHA256 2f0cdcce9989f63ef7c2939bdb17b1ef244c4f384d85b8531d60e73d8cc31eeb
ENV RUBYGEMS_VERSION 3.0.1 ENV RUBYGEMS_VERSION 3.0.1
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION 3.0.1
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION 2.4.5
ENV RUBY_DOWNLOAD_SHA256 2f0cdcce9989f63ef7c2939bdb17b1ef244c4f384d85b8531d60e73d8cc31eeb ENV RUBY_DOWNLOAD_SHA256 2f0cdcce9989f63ef7c2939bdb17b1ef244c4f384d85b8531d60e73d8cc31eeb
ENV RUBYGEMS_VERSION 3.0.1 ENV RUBYGEMS_VERSION 3.0.1
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION 3.0.1
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION 2.5.3
ENV RUBY_DOWNLOAD_SHA256 1cc9d0359a8ea35fc6111ec830d12e60168f3b9b305a3c2578357d360fcf306f ENV RUBY_DOWNLOAD_SHA256 1cc9d0359a8ea35fc6111ec830d12e60168f3b9b305a3c2578357d360fcf306f
ENV RUBYGEMS_VERSION 3.0.1 ENV RUBYGEMS_VERSION 3.0.1
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION 3.0.1
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)

View file

@ -27,6 +27,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -27,6 +27,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -11,8 +11,6 @@ ENV RUBY_MAJOR 2.6
ENV RUBY_VERSION 2.6.1 ENV RUBY_VERSION 2.6.1
ENV RUBY_DOWNLOAD_SHA256 47b629808e9fd44ce1f760cdf3ed14875fc9b19d4f334e82e2cf25cb2898f2f2 ENV RUBY_DOWNLOAD_SHA256 47b629808e9fd44ce1f760cdf3ed14875fc9b19d4f334e82e2cf25cb2898f2f2
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -27,7 +27,8 @@ ENV RUBY_DOWNLOAD_SHA256 47b629808e9fd44ce1f760cdf3ed14875fc9b19d4f334e82e2cf25c
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -35,6 +36,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -43,9 +45,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -75,10 +74,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# rough smoke test # rough smoke test

View file

@ -28,6 +28,7 @@ RUN set -ex \
gcc \ gcc \
gdbm-dev \ gdbm-dev \
glib-dev \ glib-dev \
gmp-dev \
libc-dev \ libc-dev \
libffi-dev \ libffi-dev \
libxml2-dev \ libxml2-dev \

View file

@ -12,8 +12,6 @@ ENV RUBY_VERSION %%FULL_VERSION%%
ENV RUBY_DOWNLOAD_SHA256 %%SHA256%% ENV RUBY_DOWNLOAD_SHA256 %%SHA256%%
ENV RUBYGEMS_VERSION %%RUBYGEMS%% ENV RUBYGEMS_VERSION %%RUBYGEMS%%
RUN apt-get update && apt-get install -y libgmp3-dev && rm -rf /var/lib/apt/lists/*
# some of ruby's build scripts are written in ruby # 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 # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \

View file

@ -28,7 +28,8 @@ ENV RUBYGEMS_VERSION %%RUBYGEMS%%
# we purge system ruby later to make sure our final image uses what we just built # we purge system ruby later to make sure our final image uses what we just built
RUN set -ex \ RUN set -ex \
\ \
&& buildDeps=' \ && savedAptMark="$(apt-mark showmanual)" \
&& apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
bison \ bison \
dpkg-dev \ dpkg-dev \
@ -36,6 +37,7 @@ RUN set -ex \
libbz2-dev \ libbz2-dev \
libgdbm-dev \ libgdbm-dev \
libglib2.0-dev \ libglib2.0-dev \
libgmp-dev \
libncurses-dev \ libncurses-dev \
libreadline-dev \ libreadline-dev \
libxml2-dev \ libxml2-dev \
@ -44,9 +46,6 @@ RUN set -ex \
ruby \ ruby \
wget \ wget \
xz-utils \ xz-utils \
' \
&& apt-get update \
&& apt-get install -y --no-install-recommends $buildDeps \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \
@ -76,10 +75,17 @@ RUN set -ex \
&& make -j "$(nproc)" \ && make -j "$(nproc)" \
&& make install \ && make install \
\ \
&& dpkg-query --show --showformat '${package}\n' \ && apt-mark auto '.*' > /dev/null \
| grep -P '^libreadline\d+$' \ && apt-mark manual $savedAptMark \
| xargs apt-mark manual \ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
&& apt-get purge -y --auto-remove $buildDeps \ | awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs -r dpkg-query --search \
| cut -d: -f1 \
| sort -u \
| xargs -r apt-mark manual \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
\
&& cd / \ && cd / \
&& rm -r /usr/src/ruby \ && rm -r /usr/src/ruby \
# make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246) # make sure bundled "rubygems" is older than RUBYGEMS_VERSION (https://github.com/docker-library/ruby/issues/246)