Skip to content

Commit 8a726fb

Browse files
authored
Upgrade Node.js to v20.19.6 for AL2023 builder-base (#1894)
This upgrades Node.js from v16.18.1 to v20.19.6 for Amazon Linux 2023 builder-base variant, while keeping v16.18.1 for AL2 for backward compatibility. GLIBC Compatibility: - Node.js v18/v20 require GLIBC >= 2.28 (per official Node.js docs) - Amazon Linux 2: GLIBC 2.26 (incompatible - too old) - Amazon Linux 2023: GLIBC 2.34 (compatible) Changes: - Added NODEJS_VERSION_AL23: v20.19.6 in versions.yaml - Kept NODEJS_VERSION: v16.18.1 for AL2 (no change) - Updated Dockerfile nodejs stage to pass AL_TAG and both version vars - Updated install_nodejs.sh to select version based on IS_AL23 flag - Added nodejs-al23-{amd64,arm64}-checksum for v20.19.6 - AL2 checksums unchanged (still v16.18.1) Pattern follows existing skopeo approach (SKOPEO_VERSION / SKOPEO_VERSION_AL23). Impact: - Only 2 projects use Node.js: Prometheus and generate-attribution - AL2 projects: No change (continue using Node v16) - Prometheus v3.8.0: Will use AL2023 variant with Node v20 Motivation: - Prometheus v3.8.0 requires Node.js 18+ for mantine-ui build - Node.js v16 reached EOL September 2023
1 parent 7d368f7 commit 8a726fb

5 files changed

Lines changed: 16 additions & 2 deletions

File tree

builder-base/Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@ FROM ${BUILDER_IMAGE} as nodejs
175175
ARG TARGETARCH
176176
WORKDIR /workdir
177177
ARG NODEJS_VERSION
178+
ARG NODEJS_VERSION_AL23
178179
ENV NODEJS_VERSION=$NODEJS_VERSION
180+
ENV NODEJS_VERSION_AL23=$NODEJS_VERSION_AL23
179181

180182
COPY --link --from=upx /upx /
181183
COPY ./scripts/install_base_yum_packages.sh ./scripts/remove_yum_packages.sh ./scripts/common_vars.sh \
@@ -184,7 +186,8 @@ COPY ./scripts/install_base_yum_packages.sh ./scripts/remove_yum_packages.sh ./s
184186
generate-attribution/generate-attribution \
185187
generate-attribution/generate-attribution-file.js \
186188
generate-attribution/LICENSE-2.0.txt \
187-
./checksums/nodejs-${TARGETARCH}-checksum /
189+
./checksums/nodejs-${TARGETARCH}-checksum \
190+
./checksums/nodejs-al23-${TARGETARCH}-checksum /
188191
RUN --mount=type=cache,target=/var/cache/yum,sharing=locked \
189192
/install_base_yum_packages.sh && \
190193
/install_nodejs.sh && \
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
24344f9f03e3b388a901f8fb5d98e627e6cf74ce44aaf5a0fd6c4b39e4f2adc8 node-v20.19.6-linux-x64.tar.gz
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a332bb8b108d7aab2f2e2736293e4ab41638cf6f3b3f49a756b8f63469024fa5 node-v20.19.6-linux-arm64.tar.gz

builder-base/scripts/install_nodejs.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ NEWROOT=/nodejs
2222

2323
source $SCRIPT_ROOT/common_vars.sh
2424

25+
# Select Node.js version based on AL_TAG (similar to skopeo pattern)
26+
if [ "$IS_AL23" = "true" ]; then
27+
NODEJS_VERSION=$NODEJS_VERSION_AL23
28+
CHECKSUM_FILE="nodejs-al23-$TARGETARCH-checksum"
29+
else
30+
CHECKSUM_FILE="nodejs-$TARGETARCH-checksum"
31+
fi
32+
2533
if [ $TARGETARCH == 'amd64' ]; then
2634
NODEJS_FILENAME="node-$NODEJS_VERSION-linux-x64.tar.gz"
2735
NODEJS_FOLDER="node-$NODEJS_VERSION-linux-x64"
@@ -36,7 +44,7 @@ NODEJS_CHECKSUM_URL="https://nodejs.org/dist/$NODEJS_VERSION/SHASUMS256.txt.asc"
3644
function install_nodejs() {
3745
# Installing NodeJS to run attribution generation script
3846
wget --progress dot:giga $NODEJS_DOWNLOAD_URL
39-
sha256sum -c ${BASE_DIR}/nodejs-$TARGETARCH-checksum
47+
sha256sum -c ${BASE_DIR}/$CHECKSUM_FILE
4048
tar -C $USR --strip-components=1 -xzf $NODEJS_FILENAME $NODEJS_FOLDER
4149
rm -rf $NODEJS_FILENAME
4250
}

builder-base/versions.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ HELM_VERSION: 3.8.1
1919
HUGO_VERSION: 0.85.0
2020
LINUXKIT_VERSION: v0.0.0-20220415093837-b710224cdf9a
2121
NODEJS_VERSION: v16.18.1
22+
NODEJS_VERSION_AL23: v20.19.6
2223
NOTATION_VERSION: 1.0.1
2324
ORAS_VERSION: 1.1.0
2425
OVERRIDE_BASH_VERSION: 4.3

0 commit comments

Comments
 (0)