diff --git a/6.0/Dockerfile b/8.2/Dockerfile similarity index 86% rename from 6.0/Dockerfile rename to 8.2/Dockerfile index 3c71709c4..ae718786e 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 181bcc360..88d331adc 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 5ed1fefa1..ff3e35499 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 1bc72825f..b464912c0 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/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index ed714fa26..ee6f476ad 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' ) diff --git a/versions.json b/versions.json index 9f2c406ae..54896394b 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 2fc37edad..90abcdab1 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 ],