From 85d6f77e0343ae00a355a56a3732353afb57ad7b Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Wed, 26 Mar 2025 13:37:48 +0100 Subject: [PATCH] Drop Ruby 3.1 Ruby 3.1.7 was released, which will be the last version. https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ --- 3.1/alpine3.20/Dockerfile | 121 ----------------------------------- 3.1/alpine3.21/Dockerfile | 121 ----------------------------------- 3.1/bookworm/Dockerfile | 86 ------------------------- 3.1/bullseye/Dockerfile | 86 ------------------------- 3.1/slim-bookworm/Dockerfile | 112 -------------------------------- 3.1/slim-bullseye/Dockerfile | 112 -------------------------------- Dockerfile.template | 8 +-- versions.json | 38 ----------- versions.sh | 27 ++++---- 9 files changed, 15 insertions(+), 696 deletions(-) delete mode 100644 3.1/alpine3.20/Dockerfile delete mode 100644 3.1/alpine3.21/Dockerfile delete mode 100644 3.1/bookworm/Dockerfile delete mode 100644 3.1/bullseye/Dockerfile delete mode 100644 3.1/slim-bookworm/Dockerfile delete mode 100644 3.1/slim-bullseye/Dockerfile diff --git a/3.1/alpine3.20/Dockerfile b/3.1/alpine3.20/Dockerfile deleted file mode 100644 index 8f23fa1ee..000000000 --- a/3.1/alpine3.20/Dockerfile +++ /dev/null @@ -1,121 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM alpine:3.20 - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - apk add --no-cache --virtual .ruby-builddeps \ - autoconf \ - bison \ - bzip2 \ - bzip2-dev \ - ca-certificates \ - coreutils \ - dpkg-dev dpkg \ - g++ \ - gcc \ - gdbm-dev \ - glib-dev \ - gmp-dev \ - libc-dev \ - libffi-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - make \ - ncurses-dev \ - openssl \ - openssl-dev \ - patch \ - procps \ - yaml-dev \ - zlib-dev \ - readline-dev \ - ruby \ - tar \ - xz \ - yaml-dev \ - zlib-dev \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ -# https://github.com/docker-library/ruby/issues/196 -# https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) -# https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) - wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ - echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ - patch -p1 -i thread-stack-fix.patch; \ - rm thread-stack-fix.patch; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./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 --no-network --virtual .ruby-rundeps $runDeps; \ - apk del --no-network .ruby-builddeps; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if \ - apk --no-network list --installed \ - | grep -v '^[.]ruby-' \ - | grep -i ruby \ - ; then \ - exit 1; \ - fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/3.1/alpine3.21/Dockerfile b/3.1/alpine3.21/Dockerfile deleted file mode 100644 index 9d1f1f005..000000000 --- a/3.1/alpine3.21/Dockerfile +++ /dev/null @@ -1,121 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM alpine:3.21 - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - apk add --no-cache --virtual .ruby-builddeps \ - autoconf \ - bison \ - bzip2 \ - bzip2-dev \ - ca-certificates \ - coreutils \ - dpkg-dev dpkg \ - g++ \ - gcc \ - gdbm-dev \ - glib-dev \ - gmp-dev \ - libc-dev \ - libffi-dev \ - libxml2-dev \ - libxslt-dev \ - linux-headers \ - make \ - ncurses-dev \ - openssl \ - openssl-dev \ - patch \ - procps \ - yaml-dev \ - zlib-dev \ - readline-dev \ - ruby \ - tar \ - xz \ - yaml-dev \ - zlib-dev \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ -# https://github.com/docker-library/ruby/issues/196 -# https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) -# https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) - wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ - echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ - patch -p1 -i thread-stack-fix.patch; \ - rm thread-stack-fix.patch; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./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 --no-network --virtual .ruby-rundeps $runDeps; \ - apk del --no-network .ruby-builddeps; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if \ - apk --no-network list --installed \ - | grep -v '^[.]ruby-' \ - | grep -i ruby \ - ; then \ - exit 1; \ - fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/3.1/bookworm/Dockerfile b/3.1/bookworm/Dockerfile deleted file mode 100644 index 335e515fa..000000000 --- a/3.1/bookworm/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM buildpack-deps:bookworm - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - bison \ - dpkg-dev \ - libgdbm-dev \ - ruby \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - ; \ - make -j "$(nproc)"; \ - make install; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark > /dev/null; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | 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; \ - rm -rf /var/lib/apt/lists/*; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if dpkg -l | grep -i ruby; then exit 1; fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/3.1/bullseye/Dockerfile b/3.1/bullseye/Dockerfile deleted file mode 100644 index 531bd7c46..000000000 --- a/3.1/bullseye/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM buildpack-deps:bullseye - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - bison \ - dpkg-dev \ - libgdbm-dev \ - ruby \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - ; \ - make -j "$(nproc)"; \ - make install; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark > /dev/null; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | 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; \ - rm -rf /var/lib/apt/lists/*; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if dpkg -l | grep -i ruby; then exit 1; fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/3.1/slim-bookworm/Dockerfile b/3.1/slim-bookworm/Dockerfile deleted file mode 100644 index 9d30273f7..000000000 --- a/3.1/slim-bookworm/Dockerfile +++ /dev/null @@ -1,112 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM debian:bookworm-slim - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - ; \ - rm -rf /var/lib/apt/lists/* - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - bison \ - dpkg-dev \ - libgdbm-dev \ - ruby \ - autoconf \ - bzip2 \ - g++ \ - gcc \ - libbz2-dev \ - libffi-dev \ - libgdbm-compat-dev \ - libglib2.0-dev \ - libgmp-dev \ - libncurses-dev \ - libreadline-dev \ - libssl-dev \ - libxml2-dev \ - libxslt-dev \ - libyaml-dev \ - make \ - wget \ - xz-utils \ - zlib1g-dev \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - ; \ - make -j "$(nproc)"; \ - make install; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark > /dev/null; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | 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; \ - rm -rf /var/lib/apt/lists/*; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if dpkg -l | grep -i ruby; then exit 1; fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/3.1/slim-bullseye/Dockerfile b/3.1/slim-bullseye/Dockerfile deleted file mode 100644 index e0bda294a..000000000 --- a/3.1/slim-bullseye/Dockerfile +++ /dev/null @@ -1,112 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM debian:bullseye-slim - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - ; \ - rm -rf /var/lib/apt/lists/* - -# skip installing gem documentation with `gem install`/`gem update` -RUN set -eux; \ - mkdir -p /usr/local/etc; \ - echo 'gem: --no-document' >> /usr/local/etc/gemrc - -ENV LANG C.UTF-8 - -# https://www.ruby-lang.org/en/news/2025/03/26/ruby-3-1-7-released/ -ENV RUBY_VERSION 3.1.7 -ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz -ENV RUBY_DOWNLOAD_SHA256 658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035 - -# 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 -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - bison \ - dpkg-dev \ - libgdbm-dev \ - ruby \ - autoconf \ - bzip2 \ - g++ \ - gcc \ - libbz2-dev \ - libffi-dev \ - libgdbm-compat-dev \ - libglib2.0-dev \ - libgmp-dev \ - libncurses-dev \ - libreadline-dev \ - libssl-dev \ - libxml2-dev \ - libxslt-dev \ - libyaml-dev \ - make \ - wget \ - xz-utils \ - zlib1g-dev \ - ; \ - \ - wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \ - \ - 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; \ - \ - autoconf; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - ; \ - make -j "$(nproc)"; \ - make install; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark > /dev/null; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | 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; \ - rm -rf /var/lib/apt/lists/*; \ - \ - cd /; \ - rm -r /usr/src/ruby; \ -# verify we have no "ruby" packages installed - if dpkg -l | grep -i ruby; then exit 1; fi; \ - [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ -# rough smoke test - ruby --version; \ - gem --version; \ - bundle --version - -# don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $GEM_HOME/bin:$PATH -RUN set -eux; \ - mkdir "$GEM_HOME"; \ -# adjust permissions of GEM_HOME for running "gem install" as an arbitrary user - chmod 1777 "$GEM_HOME" - -CMD [ "irb" ] diff --git a/Dockerfile.template b/Dockerfile.template index a8ea7ef7f..a51d1d454 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -41,7 +41,7 @@ RUN set -eux; \ {{ if is_alpine then ( -}} apk add --no-cache --virtual .ruby-builddeps \ autoconf \ -{{ if env.version | rtrimstr("-rc") | IN("3.1", "3.2") then ( -}} +{{ if env.version | rtrimstr("-rc") | IN("3.2") then ( -}} {{ # https://github.com/docker-library/ruby/pull/438 -}} bison \ {{ ) else "" end -}} @@ -68,7 +68,7 @@ RUN set -eux; \ procps \ yaml-dev \ zlib-dev \ -{{ if env.version | rtrimstr("-rc") | IN("3.1", "3.2") then ( -}} +{{ if env.version | rtrimstr("-rc") | IN("3.2") then ( -}} readline-dev \ {{ ) else "" end -}} ruby \ @@ -81,7 +81,7 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ -{{ if env.version | rtrimstr("-rc") | IN("3.1", "3.2") then ( -}} +{{ if env.version | rtrimstr("-rc") | IN("3.2") then ( -}} {{ # https://github.com/docker-library/ruby/pull/438 -}} bison \ {{ ) else "" end -}} @@ -99,7 +99,7 @@ RUN set -eux; \ libglib2.0-dev \ libgmp-dev \ libncurses-dev \ -{{ if env.version | rtrimstr("-rc") | IN("3.1", "3.2") then ( -}} +{{ if env.version | rtrimstr("-rc") | IN("3.2") then ( -}} libreadline-dev \ {{ ) else "" end -}} libssl-dev \ diff --git a/versions.json b/versions.json index fab612c6a..762f9f0b9 100644 --- a/versions.json +++ b/versions.json @@ -1,42 +1,4 @@ { - "3.1": { - "version": "3.1.7", - "date": "2025-03-26", - "post": "/en/news/2025/03/26/ruby-3-1-7-released/", - "url": { - "gz": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.gz", - "xz": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.tar.xz", - "zip": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.7.zip" - }, - "size": { - "gz": 20811481, - "xz": 15196628, - "zip": 25555673 - }, - "sha1": { - "gz": "c2023f05989241d1f21409b980ffbda83b1cbe7b", - "xz": "1437e9ec92f2c166f5b04dbb0c21ac299aca0542", - "zip": "c2eeaba7ebdabc84ca7b77a14a1f83b16397c87e" - }, - "sha256": { - "gz": "0556acd69f141ddace03fa5dd8d76e7ea0d8f5232edf012429579bcdaab30e7b", - "xz": "658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035", - "zip": "ab91106d0686cd30c375c309c58a5b96e68ac56e96c453c1d4f3fbb6c548dec7" - }, - "sha512": { - "gz": "a8432aaeaee4f48027ab30b7870bc61350840761b9d72b0b399d8fdfa96acb3c8f1ebe63663bcd8d835dd89b21128a07ef8f0c0c47eb41b942c169954ccb7edd", - "xz": "44e013f6e8d159a49125d24eaf02f58e02997fcd7bd4f4370250248c2d3264fb45183e33797638a7d9a2907fb48fe1b46f5f45514d60a800f96bce2c10baca82", - "zip": "febc49a0350558a8f3ad0d683c94321fc3437201c1adafdaa4e1a454234eef857d324e6ee1f95f5998d96fafce7f3a6c39483b3251a4a9ed4f64d80a1f73964e" - }, - "variants": [ - "bookworm", - "slim-bookworm", - "bullseye", - "slim-bullseye", - "alpine3.21", - "alpine3.20" - ] - }, "3.2": { "version": "3.2.8", "date": "2025-03-26", diff --git a/versions.sh b/versions.sh index 64bf090eb..689ee3b4d 100755 --- a/versions.sh +++ b/versions.sh @@ -95,22 +95,17 @@ for version in "${versions[@]}"; do ] ')" - case "$rcVersion" in - 3.1) ;; - *) - # YJIT - doc="$(jq <<<"$doc" -sc ' - .[1][].arches? |= if . then with_entries(select(.key | IN( - # https://github.com/ruby/ruby/blob/v3_2_0/doc/yjit/yjit.md ("currently supported for macOS and Linux on x86-64 and arm64/aarch64 CPUs") - # https://github.com/ruby/ruby/blob/v3_2_0/configure.ac#L3757-L3761 - "amd64", - "arm64v8", - empty # trailing comma - ))) else empty end - | add - ' - rust.json)" - ;; - esac + # YJIT + doc="$(jq <<<"$doc" -sc ' + .[1][].arches? |= if . then with_entries(select(.key | IN( + # https://github.com/ruby/ruby/blob/v3_2_0/doc/yjit/yjit.md ("currently supported for macOS and Linux on x86-64 and arm64/aarch64 CPUs") + # https://github.com/ruby/ruby/blob/v3_2_0/configure.ac#L3757-L3761 + "amd64", + "arm64v8", + empty # trailing comma + ))) else empty end + | add + ' - rust.json)" json="$(jq <<<"$json" -c --argjson doc "$doc" '.[env.version] = $doc')"