From 2fed209d004969a6ac5f32208fb726e04b5daefa Mon Sep 17 00:00:00 2001 From: Matt Loberg Date: Fri, 1 Nov 2024 09:41:36 -0500 Subject: [PATCH] feat(22): add base 22 image --- 20/base/Dockerfile | 4 +--- 22/base/Dockerfile | 28 ++++++++++++++++++++++++++++ README.md | 5 +++-- 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 22/base/Dockerfile diff --git a/20/base/Dockerfile b/20/base/Dockerfile index 2414e6f..a067299 100644 --- a/20/base/Dockerfile +++ b/20/base/Dockerfile @@ -2,9 +2,7 @@ # syntax=docker/dockerfile:1 FROM node:20-bookworm-slim -ENV SERVICE_ROOT /service -ENV SERVICE_USER service -ENV SERVICE_UID 1001 +ENV SERVICE_ROOT=/service SERVICE_USER=service SERVICE_UID=1001 ARG TARGETARCH diff --git a/22/base/Dockerfile b/22/base/Dockerfile new file mode 100644 index 0000000..f395ecc --- /dev/null +++ b/22/base/Dockerfile @@ -0,0 +1,28 @@ +# tags=articulate/node:22 +# syntax=docker/dockerfile:1 +FROM node:22-bookworm-slim + +ENV SERVICE_ROOT=/service SERVICE_USER=service SERVICE_UID=1001 + +ARG TARGETARCH + +ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/install_packages /usr/local/bin/install_packages +ADD --chmod=755 https://raw.githubusercontent.com/articulate/docker-bootstrap/main/scripts/awscli.sh /tmp/awscli.sh + +RUN install_packages make dumb-init && /tmp/awscli.sh && rm /tmp/awscli.sh \ + # Create our own user and remove the node user + && groupadd --gid $SERVICE_UID $SERVICE_USER \ + && useradd --create-home --shell /bin/bash --gid $SERVICE_UID --uid $SERVICE_UID $SERVICE_USER \ + && userdel -r node + +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 +ADD --chmod=755 https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh /wait-for-it.sh + +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 [ "dumb-init", "--", "/entrypoint" ] diff --git a/README.md b/README.md index d915e51..b3373bc 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Base Node.js Docker images. > 🌟 recommended image +* __articulate/node:22__ 🌟 * __articulate/node:20__ 🌟 * articulate/node:20-lambda * articulate/node:18 @@ -27,8 +28,8 @@ Base Node.js Docker images. ### articulate/node vs articulate/articulate-node `articulate/articulate-node` are the legacy Docker images. Those ran as root and -include additional software not always needed. Use `articulate/node` where possible -and install your own software with `install_packages`. +include software not always needed. Use `articulate/node` where possible and +install your own software with `install_packages`. ## Creating a new image