From 68f92a85abb2d3b9d2dd5279e07c2f0c20d6864f Mon Sep 17 00:00:00 2001 From: mydapitt Date: Wed, 23 Oct 2024 19:13:14 +0700 Subject: [PATCH] Added Nodejs (v22, v23), slight adjustments to some Nodejs Dockerfiles - Added Nodejs version 22 and 23 - Starting Nodejs 20, 22, and above will not use the Debian version code name to follow the release of the latest Debian operating system version in the future - In Dockerfile Nodejs 18, and 21 will install npm version 10.x.x --- .github/workflows/nodejs.yml | 2 ++ nodejs/18/Dockerfile | 2 +- nodejs/20/Dockerfile | 2 +- nodejs/22/Dockerfile | 25 +++++++++++++++++++++++++ nodejs/23/Dockerfile | 25 +++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 nodejs/22/Dockerfile create mode 100644 nodejs/23/Dockerfile diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 39f3592..c327df6 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -24,6 +24,8 @@ jobs: - 19 - 20 - 21 + - 22 + - 23 steps: - uses: actions/checkout@v4 # Setup QEMU for ARM64 Build diff --git a/nodejs/18/Dockerfile b/nodejs/18/Dockerfile index 6117c85..ee3e920 100644 --- a/nodejs/18/Dockerfile +++ b/nodejs/18/Dockerfile @@ -6,7 +6,7 @@ RUN apt update \ && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \ && useradd -m -d /home/container container -RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global +RUN npm install npm@10.x.x typescript ts-node @types/node --location=global # install pnpm RUN npm install -g corepack diff --git a/nodejs/20/Dockerfile b/nodejs/20/Dockerfile index 691e8b2..a921fac 100644 --- a/nodejs/20/Dockerfile +++ b/nodejs/20/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH node:20-bookworm-slim +FROM --platform=$TARGETOS/$TARGETARCH node:20-slim LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" diff --git a/nodejs/22/Dockerfile b/nodejs/22/Dockerfile new file mode 100644 index 0000000..4877517 --- /dev/null +++ b/nodejs/22/Dockerfile @@ -0,0 +1,25 @@ +FROM --platform=$TARGETOS/$TARGETARCH node:22-slim + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \ + && useradd -m -d /home/container container + +RUN npm install npm@10.x.x typescript ts-node @types/node --location=global + +# install pnpm +RUN npm install -g corepack +RUN corepack enable +RUN corepack prepare pnpm@latest --activate + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +STOPSIGNAL SIGINT + +COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"] diff --git a/nodejs/23/Dockerfile b/nodejs/23/Dockerfile new file mode 100644 index 0000000..874eab7 --- /dev/null +++ b/nodejs/23/Dockerfile @@ -0,0 +1,25 @@ +FROM --platform=$TARGETOS/$TARGETARCH node:23-slim + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \ + && useradd -m -d /home/container container + +RUN npm install npm@latest typescript ts-node @types/node --location=global + +# install pnpm +RUN npm install -g corepack +RUN corepack enable +RUN corepack prepare pnpm@latest --activate + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +STOPSIGNAL SIGINT + +COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"]