From 930645872a8eb6651cb1a27bfda9e0500c58fbfd Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Mon, 27 Oct 2025 13:46:39 -0700 Subject: [PATCH 1/2] Adjust upstream version filtering to allow Rapid Releases again Also, remove 6.0 as it's now EOL upstream (and encode explicit EOL dates into the update logic so they can be automatically applied over time). --- {6.0 => 8.2}/Dockerfile | 20 +++-- {6.0 => 8.2}/docker-entrypoint.sh | 0 .../windows/nanoserver-ltsc2022/Dockerfile | 10 +-- .../windowsservercore-ltsc2022/Dockerfile | 10 +-- .../windowsservercore-ltsc2025/Dockerfile | 10 +-- versions.json | 90 ++++++++++--------- versions.sh | 45 +++++----- 7 files changed, 98 insertions(+), 87 deletions(-) rename {6.0 => 8.2}/Dockerfile (86%) rename {6.0 => 8.2}/docker-entrypoint.sh (100%) rename {6.0 => 8.2}/windows/nanoserver-ltsc2022/Dockerfile (70%) rename {6.0 => 8.2}/windows/windowsservercore-ltsc2022/Dockerfile (87%) rename {6.0 => 8.2}/windows/windowsservercore-ltsc2025/Dockerfile (87%) diff --git a/6.0/Dockerfile b/8.2/Dockerfile similarity index 86% rename from 6.0/Dockerfile rename to 8.2/Dockerfile index 3c71709c4f..ae718786ec 100644 --- a/6.0/Dockerfile +++ b/8.2/Dockerfile @@ -4,7 +4,7 @@ # PLEASE DO NOT EDIT IT DIRECTLY. # -FROM ubuntu:jammy +FROM ubuntu:noble # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added RUN set -eux; \ @@ -59,10 +59,10 @@ RUN set -eux; \ \ # download/install MongoDB PGP keys export GNUPGHOME="$(mktemp -d)"; \ - wget -O KEYS 'https://pgp.mongodb.com/server-6.0.asc'; \ + wget -O KEYS 'https://pgp.mongodb.com/server-8.0.asc'; \ gpg --batch --import KEYS; \ mkdir -p /etc/apt/keyrings; \ - gpg --batch --export --armor '39BD841E4BE5FB195A65400E6A26B1AE64C3C388' > /etc/apt/keyrings/mongodb.asc; \ + gpg --batch --export --armor '4B0752C1BCA238C0B4EE14DC41DE058A4E7DCA05' > /etc/apt/keyrings/mongodb.asc; \ gpgconf --kill all; \ rm -rf "$GNUPGHOME" KEYS; \ \ @@ -85,12 +85,12 @@ ARG MONGO_PACKAGE=mongodb-org ARG MONGO_REPO=repo.mongodb.org ENV MONGO_PACKAGE=${MONGO_PACKAGE} MONGO_REPO=${MONGO_REPO} -ENV MONGO_MAJOR 6.0 -RUN echo "deb [ signed-by=/etc/apt/keyrings/mongodb.asc ] http://$MONGO_REPO/apt/ubuntu jammy/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR multiverse" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" +ENV MONGO_MAJOR 8.2 +RUN echo "deb [ signed-by=/etc/apt/keyrings/mongodb.asc ] http://$MONGO_REPO/apt/ubuntu noble/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR multiverse" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" -# https://docs.mongodb.org/master/release-notes/6.0/ -ENV MONGO_VERSION 6.0.26 -# 08/14/2025, https://github.com/mongodb/mongo/tree/0c4ec4b6005f75582ce208fc800f09f561b6c2e8 +# https://docs.mongodb.org/master/release-notes/8.2/ +ENV MONGO_VERSION 8.2.1 +# 09/30/2025, https://github.com/mongodb/mongo/tree/3312bdcf28aa65f5930005e21c2cb130f648b8c3 RUN set -x \ # installing "mongodb-enterprise" pulls in "tzdata" which prompts for input @@ -114,6 +114,10 @@ VOLUME /data/db /data/configdb # https://github.com/docker-library/mongo/issues/524 ENV HOME /data/db +# ensure that glibc isn't using rseq so that google-tcmalloc can +# https://www.mongodb.com/docs/manual/administration/tcmalloc-performance/#disable-glibc-rseq +ENV GLIBC_TUNABLES glibc.pthread.rseq=0 + COPY docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/6.0/docker-entrypoint.sh b/8.2/docker-entrypoint.sh similarity index 100% rename from 6.0/docker-entrypoint.sh rename to 8.2/docker-entrypoint.sh diff --git a/6.0/windows/nanoserver-ltsc2022/Dockerfile b/8.2/windows/nanoserver-ltsc2022/Dockerfile similarity index 70% rename from 6.0/windows/nanoserver-ltsc2022/Dockerfile rename to 8.2/windows/nanoserver-ltsc2022/Dockerfile index 181bcc3606..88d331adca 100644 --- a/6.0/windows/nanoserver-ltsc2022/Dockerfile +++ b/8.2/windows/nanoserver-ltsc2022/Dockerfile @@ -14,18 +14,18 @@ RUN setx /m PATH "C:\mongodb\bin;%PATH%" USER ContainerUser # doing this first to share cache across versions more aggressively -COPY --from=mongo:6.0.26-windowsservercore-ltsc2022 \ +COPY --from=mongo:8.2.1-windowsservercore-ltsc2022 \ C:\\Windows\\System32\\msvcp140.dll \ C:\\Windows\\System32\\msvcp140_1.dll \ C:\\Windows\\System32\\vcruntime140.dll \ C:\\Windows\\System32\\vcruntime140_1.dll \ C:\\Windows\\System32\\ -# https://docs.mongodb.org/master/release-notes/6.0/ -ENV MONGO_VERSION 6.0.26 -# 08/14/2025, https://github.com/mongodb/mongo/tree/0c4ec4b6005f75582ce208fc800f09f561b6c2e8 +# https://docs.mongodb.org/master/release-notes/8.2/ +ENV MONGO_VERSION 8.2.1 +# 09/30/2025, https://github.com/mongodb/mongo/tree/3312bdcf28aa65f5930005e21c2cb130f648b8c3 -COPY --from=mongo:6.0.26-windowsservercore-ltsc2022 C:\\mongodb C:\\mongodb +COPY --from=mongo:8.2.1-windowsservercore-ltsc2022 C:\\mongodb C:\\mongodb RUN mongod --version VOLUME C:\\data\\db C:\\data\\configdb diff --git a/6.0/windows/windowsservercore-ltsc2022/Dockerfile b/8.2/windows/windowsservercore-ltsc2022/Dockerfile similarity index 87% rename from 6.0/windows/windowsservercore-ltsc2022/Dockerfile rename to 8.2/windows/windowsservercore-ltsc2022/Dockerfile index 5ed1fefa15..ff3e354995 100644 --- a/6.0/windows/windowsservercore-ltsc2022/Dockerfile +++ b/8.2/windows/windowsservercore-ltsc2022/Dockerfile @@ -8,12 +8,12 @@ FROM mcr.microsoft.com/windows/servercore:ltsc2022 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] -# https://docs.mongodb.org/master/release-notes/6.0/ -ENV MONGO_VERSION 6.0.26 -# 08/14/2025, https://github.com/mongodb/mongo/tree/0c4ec4b6005f75582ce208fc800f09f561b6c2e8 +# https://docs.mongodb.org/master/release-notes/8.2/ +ENV MONGO_VERSION 8.2.1 +# 09/30/2025, https://github.com/mongodb/mongo/tree/3312bdcf28aa65f5930005e21c2cb130f648b8c3 -ENV MONGO_DOWNLOAD_URL https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.26-signed.msi -ENV MONGO_DOWNLOAD_SHA256=b32578a8d982810c6a9a0b2f962bd45053701d97415f901030b796ec93dea75a +ENV MONGO_DOWNLOAD_URL https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.2.1-signed.msi +ENV MONGO_DOWNLOAD_SHA256=b005cfd5655f0e752d80fa83a6a37be231ab57639dd2f75cf9647ad315701386 RUN Write-Host ('Downloading {0} ...' -f $env:MONGO_DOWNLOAD_URL); \ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ diff --git a/6.0/windows/windowsservercore-ltsc2025/Dockerfile b/8.2/windows/windowsservercore-ltsc2025/Dockerfile similarity index 87% rename from 6.0/windows/windowsservercore-ltsc2025/Dockerfile rename to 8.2/windows/windowsservercore-ltsc2025/Dockerfile index 1bc72825f0..b464912c0b 100644 --- a/6.0/windows/windowsservercore-ltsc2025/Dockerfile +++ b/8.2/windows/windowsservercore-ltsc2025/Dockerfile @@ -8,12 +8,12 @@ FROM mcr.microsoft.com/windows/servercore:ltsc2025 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] -# https://docs.mongodb.org/master/release-notes/6.0/ -ENV MONGO_VERSION 6.0.26 -# 08/14/2025, https://github.com/mongodb/mongo/tree/0c4ec4b6005f75582ce208fc800f09f561b6c2e8 +# https://docs.mongodb.org/master/release-notes/8.2/ +ENV MONGO_VERSION 8.2.1 +# 09/30/2025, https://github.com/mongodb/mongo/tree/3312bdcf28aa65f5930005e21c2cb130f648b8c3 -ENV MONGO_DOWNLOAD_URL https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.26-signed.msi -ENV MONGO_DOWNLOAD_SHA256=b32578a8d982810c6a9a0b2f962bd45053701d97415f901030b796ec93dea75a +ENV MONGO_DOWNLOAD_URL https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.2.1-signed.msi +ENV MONGO_DOWNLOAD_SHA256=b005cfd5655f0e752d80fa83a6a37be231ab57639dd2f75cf9647ad315701386 RUN Write-Host ('Downloading {0} ...' -f $env:MONGO_DOWNLOAD_URL); \ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ diff --git a/versions.json b/versions.json index 9f2c406ae7..54896394bb 100644 --- a/versions.json +++ b/versions.json @@ -1,32 +1,33 @@ { - "6.0": { - "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%226.0.26%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", - "date": "08/14/2025", - "githash": "0c4ec4b6005f75582ce208fc800f09f561b6c2e8", + "7.0": { + "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%227.0.25%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", + "date": "09/30/2025", + "eol": "2027-08-31", + "githash": "96dce3da49b8d2e9e0d328048cb56930eb1bdb2b", "linux": "ubuntu2204", - "notes": "https://docs.mongodb.org/master/release-notes/6.0/", + "notes": "https://docs.mongodb.org/master/release-notes/7.0/", "pgp": [ { "fingerprints": [ - "39BD841E4BE5FB195A65400E6A26B1AE64C3C388" + "E58830201F7DD82CD808AA84160D26BB1785BA38" ], - "url": "https://pgp.mongodb.com/server-6.0.asc" + "url": "https://pgp.mongodb.com/server-7.0.asc" } ], "targets": { - "debian10": { + "debian11": { "arches": [ "amd64" ], - "image": "debian:buster-slim", - "suite": "buster" + "image": "debian:bullseye-slim", + "suite": "bullseye" }, - "debian11": { + "debian12": { "arches": [ "amd64" ], - "image": "debian:bullseye-slim", - "suite": "bullseye" + "image": "debian:bookworm-slim", + "suite": "bookworm" }, "ubuntu2004": { "arches": [ @@ -53,8 +54,8 @@ "Router", "ServerNoService" ], - "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.26-signed.msi", - "sha256": "b32578a8d982810c6a9a0b2f962bd45053701d97415f901030b796ec93dea75a", + "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.25-signed.msi", + "sha256": "a6e4b64f4130bd82642eafc83a3644ebb7425c0c26ce7d445ed95da4a9767613", "variants": [ "windowsservercore-ltsc2025", "windowsservercore-ltsc2022", @@ -62,31 +63,25 @@ ] } }, - "version": "6.0.26" + "version": "7.0.25" }, - "6.0-rc": null, - "7.0": { - "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%227.0.25%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", + "7.0-rc": null, + "8.0": { + "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%228.0.15%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", "date": "09/30/2025", - "githash": "96dce3da49b8d2e9e0d328048cb56930eb1bdb2b", - "linux": "ubuntu2204", - "notes": "https://docs.mongodb.org/master/release-notes/7.0/", + "eol": "2029-10-31", + "githash": "f79b970f08f60c41491003cd55a3dd459a279c39", + "linux": "ubuntu2404", + "notes": "https://docs.mongodb.org/master/release-notes/8.0/", "pgp": [ { "fingerprints": [ - "E58830201F7DD82CD808AA84160D26BB1785BA38" + "4B0752C1BCA238C0B4EE14DC41DE058A4E7DCA05" ], - "url": "https://pgp.mongodb.com/server-7.0.asc" + "url": "https://pgp.mongodb.com/server-8.0.asc" } ], "targets": { - "debian11": { - "arches": [ - "amd64" - ], - "image": "debian:bullseye-slim", - "suite": "bullseye" - }, "debian12": { "arches": [ "amd64" @@ -110,6 +105,14 @@ "image": "ubuntu:jammy", "suite": "jammy" }, + "ubuntu2404": { + "arches": [ + "amd64", + "arm64v8" + ], + "image": "ubuntu:noble", + "suite": "noble" + }, "windows": { "arches": [ "amd64" @@ -119,8 +122,8 @@ "Router", "ServerNoService" ], - "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.25-signed.msi", - "sha256": "a6e4b64f4130bd82642eafc83a3644ebb7425c0c26ce7d445ed95da4a9767613", + "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.15-signed.msi", + "sha256": "212be476297cf2b93e0d1279506780aaf5e67865e0ba342e740d1bc9ff772557", "variants": [ "windowsservercore-ltsc2025", "windowsservercore-ltsc2022", @@ -128,15 +131,16 @@ ] } }, - "version": "7.0.25" + "version": "8.0.15" }, - "7.0-rc": null, - "8.0": { - "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%228.0.15%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", + "8.0-rc": null, + "8.2": { + "changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%228.2.1%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", "date": "09/30/2025", - "githash": "f79b970f08f60c41491003cd55a3dd459a279c39", + "eol": "2026-03-30", + "githash": "3312bdcf28aa65f5930005e21c2cb130f648b8c3", "linux": "ubuntu2404", - "notes": "https://docs.mongodb.org/master/release-notes/8.0/", + "notes": "https://docs.mongodb.org/master/release-notes/8.2/", "pgp": [ { "fingerprints": [ @@ -186,8 +190,8 @@ "Router", "ServerNoService" ], - "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.15-signed.msi", - "sha256": "212be476297cf2b93e0d1279506780aaf5e67865e0ba342e740d1bc9ff772557", + "msi": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.2.1-signed.msi", + "sha256": "b005cfd5655f0e752d80fa83a6a37be231ab57639dd2f75cf9647ad315701386", "variants": [ "windowsservercore-ltsc2025", "windowsservercore-ltsc2022", @@ -195,7 +199,7 @@ ] } }, - "version": "8.0.15" + "version": "8.2.1" }, - "8.0-rc": null + "8.2-rc": null } diff --git a/versions.sh b/versions.sh index 2fc37edadb..90abcdab18 100755 --- a/versions.sh +++ b/versions.sh @@ -42,25 +42,27 @@ shell="$( meta: ., } - # filter out EOL versions - # (for some reason "current.json" still lists all these, and as of 2021-05-13 there is not an included way to differentiate them) - | select(.version as $v | [ - # https://www.mongodb.com/support-policy/lifecycles - "3.0", # February 2018 - "3.2", # September 2018 - "3.4", # January 2020 - "3.6", # April 2021 - "4.0", # April 2022 - "4.2", # April 2023 - empty - ] | index($v) | not) - - # filter out so-called "rapid releases": https://docs.mongodb.com/upcoming/reference/versioning/ - # "Rapid Releases are designed for use with MongoDB Atlas, and are not generally supported for use in an on-premise capacity." + # inject upstream EOL dates + | .meta.eol = ( + .version + | rtrimstr("-rc") + | { + # https://www.mongodb.com/support-policy/lifecycles + # (only needs to list versions that currently exist in "current.json" that we are scraping, and only because they do not get removed promptly at EOL) + + "8.0": "2029-10-31", + "7.0": "2027-08-31", + "6.0": "2025-07-31", + + # "Rapid Releases" and "Minor Releases" + "8.2": "2026-03-30", + }[.] + ) + # ... so we can filter out EOL versions (because "current.json" continues to list them for some period of time, but with no explicitly differentiating metadata about their EOL state) | select( - (.version | split("[.-]"; "")) as $splitVersion - | ($splitVersion[0] | tonumber) >= 5 and ($splitVersion[1] | tonumber) > 0 - | not + .meta.eol + | not or . >= (now | strftime("%Y-%m-%d")) + # (ie, only keep versions whose EOL status is unknown because we need to update the table above or versions we know are not yet EOL) ) ] @@ -123,15 +125,16 @@ for version in "${versions[@]}"; do _jq --slurpfile pgpKeys pgp-keys.json '{ (env.version): ( $pgpKeys[0] as $pgp | (env.version | rtrimstr("-rc")) as $rcVersion - | with_entries(select(.key as $key | [ + | with_entries(select(IN(.key; # interesting bits of raw upstream metadata "changes", "date", "githash", "notes", "version", + "eol", # not exactly "upstream" metadata, but metadata from upstream that we carefully injected empty - ] | index($key))) + ))) + { pgp: [ if env.version != $rcVersion then @@ -139,7 +142,7 @@ for version in "${versions[@]}"; do $pgp.dev else empty end, - $pgp[$rcVersion], + $pgp[$rcVersion | sub("[.][0-9]+$"; ".0")], # normalizing 8.x to 8.0 because "Rapid Releases" use the key of the most recent major empty ], From c71ac3a4c7784a1c004a05cdbfeedd73ebc6567a Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Mon, 27 Oct 2025 16:09:11 -0700 Subject: [PATCH 2/2] Update "latest" to be 8.2 --- generate-stackbrew-library.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index ed714fa267..ee6f476ad1 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -2,7 +2,7 @@ set -Eeuo pipefail declare -A aliases=( - [8.0]='8 latest' + [8.2]='8 latest' [7.0]='7' [6.0]='6' )