From ce0df0f372fc3888c12442d5b5063605bdc8af64 Mon Sep 17 00:00:00 2001 From: Tyler O'Donnell Date: Fri, 6 Mar 2026 10:38:14 -0500 Subject: [PATCH 1/2] feat: add Node.js 24 lambda image - Add new 24/lambda/Dockerfile based on aws-lambda-nodejs:24 - Update corepack from 0.33.0 to 0.34.6 in 24/base/Dockerfile - Update README with 24-lambda variant --- 24/base/Dockerfile | 2 +- 24/lambda/Dockerfile | 30 ++++++++++++++++++++++++++++++ README.md | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 24/lambda/Dockerfile diff --git a/24/base/Dockerfile b/24/base/Dockerfile index e443167..8510d5e 100644 --- a/24/base/Dockerfile +++ b/24/base/Dockerfile @@ -17,7 +17,7 @@ RUN install_packages make dumb-init ca-certificates && /tmp/awscli.sh && rm /tmp && useradd --create-home --shell /bin/bash --gid $SERVICE_UID --uid $SERVICE_UID $SERVICE_USER \ && userdel -r node \ # Enable Corepack - && npm install --global corepack@0.33.0 \ + && npm install --global corepack@0.34.6 \ && corepack enable \ # Split PEM bundle into individual cert files for update-ca-certificates && csplit -s -z -n 3 -f /usr/local/share/ca-certificates/aws-rds-ca- \ diff --git a/24/lambda/Dockerfile b/24/lambda/Dockerfile new file mode 100644 index 0000000..4348ff5 --- /dev/null +++ b/24/lambda/Dockerfile @@ -0,0 +1,30 @@ +# tags=articulate/node:24-lambda +# syntax=docker/dockerfile:1 +FROM amazon/aws-lambda-nodejs:24 + +ENV AWS_DEFAULT_REGION=us-east-1 SERVICE_ROOT=/service SERVICE_USER=service SERVICE_UID=1001 COREPACK_ENABLE_DOWNLOAD_PROMPT=0 + +ARG TARGETARCH + +RUN dnf -y install make zip shadow-utils \ + # Add service user + && /usr/sbin/groupadd --gid $SERVICE_UID $SERVICE_USER \ + && /usr/sbin/useradd --create-home --shell /bin/bash --uid $SERVICE_UID --gid $SERVICE_UID $SERVICE_USER \ + # Enable Corepack + && npm install --global corepack@0.34.6 \ + && corepack enable \ + # clean up + && dnf -y remove shadow-utils \ + && dnf clean all \ + && npm cache clean --force + +ADD --chmod=755 https://github.com/articulate/docker-bootstrap/releases/latest/download/docker-bootstrap_linux_${TARGETARCH} /entrypoint +ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/docker-secrets /usr/local/bin/secrets + +USER $SERVICE_USER +WORKDIR $SERVICE_ROOT + +# Our entrypoint will pull in our environment variables from Consul and Vault, +# and execute whatever command we provided the container. +# See https://github.com/articulate/docker-bootstrap +ENTRYPOINT [ "/entrypoint" ] diff --git a/README.md b/README.md index 16f8712..87dcb13 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Base Node.js Docker images. > 🌟 recommended image * __articulate/node:24__ 🌟 +* articulate/node:24-lambda * __articulate/node:22__ 🌟 * articulate/node:22-lambda * __articulate/node:20__ From 77181640c3a5dda13722d65d1aa2deb4d9502aa8 Mon Sep 17 00:00:00 2001 From: Tyler O'Donnell Date: Fri, 6 Mar 2026 11:09:12 -0500 Subject: [PATCH 2/2] fix(24): use ECR Public source for Node 24 lambda base image amazon/aws-lambda-nodejs:24 does not exist on Docker Hub (only arch-specific tags like 24-x86_64 are published). Use the canonical multi-arch image from public.ecr.aws/lambda/nodejs:24 instead. --- 24/lambda/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/24/lambda/Dockerfile b/24/lambda/Dockerfile index 4348ff5..5cb4755 100644 --- a/24/lambda/Dockerfile +++ b/24/lambda/Dockerfile @@ -1,6 +1,6 @@ # tags=articulate/node:24-lambda # syntax=docker/dockerfile:1 -FROM amazon/aws-lambda-nodejs:24 +FROM public.ecr.aws/lambda/nodejs:24 ENV AWS_DEFAULT_REGION=us-east-1 SERVICE_ROOT=/service SERVICE_USER=service SERVICE_UID=1001 COREPACK_ENABLE_DOWNLOAD_PROMPT=0