diff --git a/3.2/bookworm/Dockerfile b/3.2/bookworm/Dockerfile index 11f2e3f51..b3bc48359 100644 --- a/3.2/bookworm/Dockerfile +++ b/3.2/bookworm/Dockerfile @@ -80,7 +80,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.2/slim-bookworm/Dockerfile b/3.2/slim-bookworm/Dockerfile index b7057d03c..f98bd9c66 100644 --- a/3.2/slim-bookworm/Dockerfile +++ b/3.2/slim-bookworm/Dockerfile @@ -106,7 +106,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.2/slim-bullseye/Dockerfile b/3.2/slim-trixie/Dockerfile similarity index 93% rename from 3.2/slim-bullseye/Dockerfile rename to 3.2/slim-trixie/Dockerfile index 76afd63c5..790b4d7c1 100644 --- a/3.2/slim-bullseye/Dockerfile +++ b/3.2/slim-trixie/Dockerfile @@ -4,14 +4,14 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM debian:bullseye-slim +FROM debian:trixie-slim RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ca-certificates \ ; \ - rm -rf /var/lib/apt/lists/* + apt-get dist-clean # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -106,12 +106,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.2/bullseye/Dockerfile b/3.2/trixie/Dockerfile similarity index 92% rename from 3.2/bullseye/Dockerfile rename to 3.2/trixie/Dockerfile index b2052355d..5101672e0 100644 --- a/3.2/bullseye/Dockerfile +++ b/3.2/trixie/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM buildpack-deps:bullseye +FROM buildpack-deps:trixie # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -80,12 +80,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.3/bookworm/Dockerfile b/3.3/bookworm/Dockerfile index a6c3a713c..ef0157c5a 100644 --- a/3.3/bookworm/Dockerfile +++ b/3.3/bookworm/Dockerfile @@ -79,7 +79,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.3/slim-bookworm/Dockerfile b/3.3/slim-bookworm/Dockerfile index 1ee20ce46..a40030513 100644 --- a/3.3/slim-bookworm/Dockerfile +++ b/3.3/slim-bookworm/Dockerfile @@ -104,7 +104,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.3/slim-bullseye/Dockerfile b/3.3/slim-trixie/Dockerfile similarity index 93% rename from 3.3/slim-bullseye/Dockerfile rename to 3.3/slim-trixie/Dockerfile index e1291c858..96ef30aa8 100644 --- a/3.3/slim-bullseye/Dockerfile +++ b/3.3/slim-trixie/Dockerfile @@ -4,14 +4,14 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM debian:bullseye-slim +FROM debian:trixie-slim RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ca-certificates \ ; \ - rm -rf /var/lib/apt/lists/* + apt-get dist-clean # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -104,12 +104,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.3/bullseye/Dockerfile b/3.3/trixie/Dockerfile similarity index 92% rename from 3.3/bullseye/Dockerfile rename to 3.3/trixie/Dockerfile index bf468ae30..b9aaf1553 100644 --- a/3.3/bullseye/Dockerfile +++ b/3.3/trixie/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM buildpack-deps:bullseye +FROM buildpack-deps:trixie # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -79,12 +79,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.4/bookworm/Dockerfile b/3.4/bookworm/Dockerfile index 9c1ef3f64..49e674538 100644 --- a/3.4/bookworm/Dockerfile +++ b/3.4/bookworm/Dockerfile @@ -79,7 +79,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.4/slim-bookworm/Dockerfile b/3.4/slim-bookworm/Dockerfile index 935df7aff..601a1952e 100644 --- a/3.4/slim-bookworm/Dockerfile +++ b/3.4/slim-bookworm/Dockerfile @@ -104,7 +104,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.4/slim-bullseye/Dockerfile b/3.4/slim-trixie/Dockerfile similarity index 93% rename from 3.4/slim-bullseye/Dockerfile rename to 3.4/slim-trixie/Dockerfile index 31cdaaaf2..24a1a291b 100644 --- a/3.4/slim-bullseye/Dockerfile +++ b/3.4/slim-trixie/Dockerfile @@ -4,14 +4,14 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM debian:bullseye-slim +FROM debian:trixie-slim RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ca-certificates \ ; \ - rm -rf /var/lib/apt/lists/* + apt-get dist-clean # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -104,12 +104,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.4/bullseye/Dockerfile b/3.4/trixie/Dockerfile similarity index 92% rename from 3.4/bullseye/Dockerfile rename to 3.4/trixie/Dockerfile index e3c7445da..830ccb587 100644 --- a/3.4/bullseye/Dockerfile +++ b/3.4/trixie/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM buildpack-deps:bullseye +FROM buildpack-deps:trixie # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -79,12 +79,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.5-rc/bookworm/Dockerfile b/3.5-rc/bookworm/Dockerfile index 7e3b5a1cb..abb1e8ab5 100644 --- a/3.5-rc/bookworm/Dockerfile +++ b/3.5-rc/bookworm/Dockerfile @@ -79,7 +79,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.5-rc/slim-bookworm/Dockerfile b/3.5-rc/slim-bookworm/Dockerfile index 7604e847c..9f359ead4 100644 --- a/3.5-rc/slim-bookworm/Dockerfile +++ b/3.5-rc/slim-bookworm/Dockerfile @@ -104,7 +104,8 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ diff --git a/3.5-rc/slim-bullseye/Dockerfile b/3.5-rc/slim-trixie/Dockerfile similarity index 93% rename from 3.5-rc/slim-bullseye/Dockerfile rename to 3.5-rc/slim-trixie/Dockerfile index d538daea2..12f1096f4 100644 --- a/3.5-rc/slim-bullseye/Dockerfile +++ b/3.5-rc/slim-trixie/Dockerfile @@ -4,14 +4,14 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM debian:bullseye-slim +FROM debian:trixie-slim RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ca-certificates \ ; \ - rm -rf /var/lib/apt/lists/* + apt-get dist-clean # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -104,12 +104,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/3.5-rc/bullseye/Dockerfile b/3.5-rc/trixie/Dockerfile similarity index 92% rename from 3.5-rc/bullseye/Dockerfile rename to 3.5-rc/trixie/Dockerfile index 2aa035aa9..33b582a2d 100644 --- a/3.5-rc/bullseye/Dockerfile +++ b/3.5-rc/trixie/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM buildpack-deps:bullseye +FROM buildpack-deps:trixie # skip installing gem documentation with `gem install`/`gem update` RUN set -eux; \ @@ -79,12 +79,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + apt-get dist-clean; \ \ cd /; \ rm -r /usr/src/ruby; \ diff --git a/Dockerfile.template b/Dockerfile.template index 9f9a68542..c402e7366 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -4,6 +4,12 @@ ; def is_slim: env.variant | startswith("slim-") + ; + def clean_apt: + # TODO once bookworm is EOL, remove this and just hard-code "apt-get dist-clean" instead + if env.variant | contains("bookworm") then + "rm -rf /var/lib/apt/lists/*" + else "apt-get dist-clean" end -}} {{ if is_alpine then ( -}} FROM alpine:{{ env.variant | ltrimstr("alpine") }} @@ -19,7 +25,7 @@ RUN set -eux; \ apt-get install -y --no-install-recommends \ ca-certificates \ ; \ - rm -rf /var/lib/apt/lists/* + {{ clean_apt }} {{ ) else "" end -}} # skip installing gem documentation with `gem install`/`gem update` @@ -228,12 +234,13 @@ RUN set -eux; \ | 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 \ +# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) + | awk 'sub(":$", "", $1) { print $1 }' \ | sort -u \ | xargs -r apt-mark manual \ ; \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ + {{ clean_apt }}; \ {{ ) end -}} \ cd /; \ diff --git a/versions.json b/versions.json index b8f8d5de7..e26445542 100644 --- a/versions.json +++ b/versions.json @@ -29,10 +29,10 @@ "zip": "6a313a36d6e630fb795d37f18da1e908d03c05d7200ef86e2260a18b5fc71f8f3201431f255e3cf7a47e0ee25ab5b9158b9477100ad6729e1f7ebf13f9b0a840" }, "variants": [ + "trixie", + "slim-trixie", "bookworm", "slim-bookworm", - "bullseye", - "slim-bullseye", "alpine3.22", "alpine3.21" ], @@ -99,10 +99,10 @@ "zip": "67a6e0bdce21b237d8db62a8351fb544dc8cf15a1afcb111d0589b0384f6b977a3f779042ef49eb170256ac168e0477b8b56f343ab381422e788850c1d171382" }, "variants": [ + "trixie", + "slim-trixie", "bookworm", "slim-bookworm", - "bullseye", - "slim-bullseye", "alpine3.22", "alpine3.21" ], @@ -169,10 +169,10 @@ "xz": "1f5d2fd527d15bd81ca8f49767d6426533367c1018a1d275d34721a96410b51204236173224e5198a42b56162c6e7a7b0c060fc032a9fd7f250b44e05c7af560" }, "variants": [ + "trixie", + "slim-trixie", "bookworm", "slim-bookworm", - "bullseye", - "slim-bullseye", "alpine3.22", "alpine3.21" ], @@ -246,10 +246,10 @@ "xz": "835bd0b65d546722c83b0ab454256357b48898a0de9aa8e38966f53d2370a6e99552eeaff76a0b680aefbbe7491e701e5e7357797e50f063c53e79d9561c1dac" }, "variants": [ + "trixie", + "slim-trixie", "bookworm", "slim-bookworm", - "bullseye", - "slim-bullseye", "alpine3.22", "alpine3.21" ], diff --git a/versions.sh b/versions.sh index 9bcde726a..3e9a90c91 100755 --- a/versions.sh +++ b/versions.sh @@ -83,8 +83,8 @@ for version in "${versions[@]}"; do doc="$(jq <<<"$doc" -c ' .variants = [ ( + "trixie", "bookworm", - "bullseye", empty # trailing comma hack | ., "slim-" + .), # https://github.com/docker-library/ruby/pull/142#issuecomment-320012893 (