From a7506eeb032f439186bd88d25545ec393b9f8b89 Mon Sep 17 00:00:00 2001 From: Leo Xuzhang Lin Date: Fri, 30 Jan 2026 12:36:44 -0500 Subject: [PATCH] feat: add python with node --- 3.13/node/Dockerfile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 3.13/node/Dockerfile diff --git a/3.13/node/Dockerfile b/3.13/node/Dockerfile new file mode 100644 index 0000000..48ed284 --- /dev/null +++ b/3.13/node/Dockerfile @@ -0,0 +1,43 @@ +# tags=articulate/python:3.13-node +# syntax=docker/dockerfile:1 +FROM python:3.13-slim-bookworm + +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 +# Add AWS RDS CA trusted root certificates +ADD --chmod=644 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem /usr/local/share/ca-certificates/aws-rds-global-bundle.pem + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN install_packages make dumb-init ca-certificates && /tmp/awscli.sh && rm /tmp/awscli.sh \ + # Install Node.js + && install_packages curl gnupg \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ + && install_packages nodejs \ + && apt-get remove -y curl gnupg \ + # 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 \ + # 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- \ + /usr/local/share/ca-certificates/aws-rds-global-bundle.pem \ + '/-----BEGIN CERTIFICATE-----/' '{*}' \ + && for f in /usr/local/share/ca-certificates/aws-rds-ca-*; do mv "$f" "$f.crt"; done \ + && update-ca-certificates + +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" ] +