From 74804a1006923e4795f11944bd6e0db20b3ebaf8 Mon Sep 17 00:00:00 2001 From: Gilmar Pereira Date: Mon, 19 Jan 2026 11:21:36 -0700 Subject: [PATCH 1/4] add: node 24 & 24-nginx --- {22-nginx => 24-nginx}/Dockerfile | 2 +- {22-nginx => 24-nginx}/entrypoint | 0 {22-nginx => 24-nginx}/kool-npmrc | 0 {22-nginx => 24-nginx}/root-npmrc | 0 README.md | 18 +++++++++--------- kool.yml | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) rename {22-nginx => 24-nginx}/Dockerfile (95%) rename {22-nginx => 24-nginx}/entrypoint (100%) rename {22-nginx => 24-nginx}/kool-npmrc (100%) rename {22-nginx => 24-nginx}/root-npmrc (100%) diff --git a/22-nginx/Dockerfile b/24-nginx/Dockerfile similarity index 95% rename from 22-nginx/Dockerfile rename to 24-nginx/Dockerfile index 4b10bf9..6047b6d 100644 --- a/22-nginx/Dockerfile +++ b/24-nginx/Dockerfile @@ -1,5 +1,5 @@ # Use the base image -FROM kooldev/node:22 +FROM kooldev/node:24 RUN apk add --no-cache nginx diff --git a/22-nginx/entrypoint b/24-nginx/entrypoint similarity index 100% rename from 22-nginx/entrypoint rename to 24-nginx/entrypoint diff --git a/22-nginx/kool-npmrc b/24-nginx/kool-npmrc similarity index 100% rename from 22-nginx/kool-npmrc rename to 24-nginx/kool-npmrc diff --git a/22-nginx/root-npmrc b/24-nginx/root-npmrc similarity index 100% rename from 22-nginx/root-npmrc rename to 24-nginx/root-npmrc diff --git a/README.md b/README.md index 65ff3b6..8278f18 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,14 @@ Minimal [Node](https://nodejs.org/en/) Docker image. It's use is intended for [k - [22](https://github.com/kool-dev/docker-node/blob/master/22/Dockerfile) -### 22-nginx - -- [22-nginx](https://github.com/kool-dev/docker-node/blob/master/22-nginx/Dockerfile) - ### 24 - [24](https://github.com/kool-dev/docker-node/blob/master/24/Dockerfile) +### 22-nginx + +- [24-nginx](https://github.com/kool-dev/docker-node/blob/master/24-nginx/Dockerfile) + ### Legacy tags The following images have been discontinued, but still exist on Hub Docker in case you need them. We strongly advise moving to the newer versions. @@ -35,10 +35,10 @@ The following images have been discontinued, but still exist on Hub Docker in ca ## Environment Variables -Variable | Default Value | Description ---- | --- | --- -**ASUSER** | `0` | Changes the user id that executes the commands -**UID** | `0` | Changes the user id that executes the commands **(ignored if ASUSER is provided)** +| Variable | Default Value | Description | +| ---------- | ------------- | ---------------------------------------------------------------------------------- | +| **ASUSER** | `0` | Changes the user id that executes the commands | +| **UID** | `0` | Changes the user id that executes the commands **(ignored if ASUSER is provided)** | ## Usage @@ -60,7 +60,7 @@ With `docker-compose.yml`: app: image: kooldev/node:22 environment: - ASUSER: "${$UID}" + ASUSER: '${$UID}' ``` ## Contributing diff --git a/kool.yml b/kool.yml index c733682..9f59837 100644 --- a/kool.yml +++ b/kool.yml @@ -5,5 +5,5 @@ scripts: - kool run template - docker build --pull -t kooldev/node:20 20 - docker build --pull -t kooldev/node:22 22 - - docker build --pull -t kooldev/node:22-nginx 22-nginx - docker build --pull -t kooldev/node:24 24 + - docker build --pull -t kooldev/node:24-nginx 24-nginx From 882f4f8ac8e993659b028ed1377f50ceafc428ff Mon Sep 17 00:00:00 2001 From: Gilmar Pereira Date: Mon, 19 Jan 2026 13:51:35 -0700 Subject: [PATCH 2/4] Tweaks --- .github/workflows/ci-cd.yml | 2 +- README.md | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index b7ed508..ecce01a 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -10,7 +10,7 @@ jobs: build: strategy: matrix: - version: [20, 22, 22-nginx, 24] + version: [20, 22, 24, 24-nginx] runs-on: [ubuntu-24.04, ubuntu-24.04-arm] runs-on: ${{ matrix.runs-on }} diff --git a/README.md b/README.md index 8278f18..fa4ad63 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Minimal [Node](https://nodejs.org/en/) Docker image. It's use is intended for [k - [24](https://github.com/kool-dev/docker-node/blob/master/24/Dockerfile) -### 22-nginx +### 24-nginx - [24-nginx](https://github.com/kool-dev/docker-node/blob/master/24-nginx/Dockerfile) @@ -32,13 +32,14 @@ The following images have been discontinued, but still exist on Hub Docker in ca - [16](https://github.com/kool-dev/docker-node/blob/master/16/Dockerfile) - [18](https://github.com/kool-dev/docker-node/blob/master/18/Dockerfile) - [21](https://github.com/kool-dev/docker-node/blob/master/21/Dockerfile) +- [22-nginx](https://github.com/kool-dev/docker-node/blob/master/22-nginx/Dockerfile) ## Environment Variables -| Variable | Default Value | Description | -| ---------- | ------------- | ---------------------------------------------------------------------------------- | -| **ASUSER** | `0` | Changes the user id that executes the commands | -| **UID** | `0` | Changes the user id that executes the commands **(ignored if ASUSER is provided)** | +Variable | Default Value | Description +--- | --- | --- +**ASUSER** | `0` | Changes the user id that executes the commands +**UID** | `0` | Changes the user id that executes the commands **(ignored if ASUSER is provided)** ## Usage @@ -60,7 +61,7 @@ With `docker-compose.yml`: app: image: kooldev/node:22 environment: - ASUSER: '${$UID}' + ASUSER: "${$UID}" ``` ## Contributing From 2453538336c4626ed8e9963344653463ae048ce5 Mon Sep 17 00:00:00 2001 From: Gilmar Pereira Date: Tue, 20 Jan 2026 10:09:49 -0700 Subject: [PATCH 3/4] Tweak: missing matrix update for node-24 --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index ecce01a..9fe93ad 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -65,7 +65,7 @@ jobs: runs-on: ubuntu-24.04 strategy: matrix: - version: [20, 22, 22-nginx, 24] + version: [20, 22, 24, 24-nginx] steps: - uses: docker/login-action@v3 From bf4f2ab5df319e3bc61b596fd5f57d959108ad07 Mon Sep 17 00:00:00 2001 From: Gilmar Pereira Date: Wed, 10 Jun 2026 17:11:30 -0300 Subject: [PATCH 4/4] ci: rotate buildx cache weekly so npm@latest actually refreshes The weekly cron never refreshed npm because the buildx layer cache was restored via a prefix restore-key on an unchanged master sha, so the `npm i npm@latest` layer was always a cache hit and froze npm at 11.9.0. Fold an ISO week stamp into the cache key + restore-key so the cache rotates once a week: each new week is a cold build that re-resolves npm@latest (and, with --pull, the base node image), while intra-week pushes still hit the cache for fast incremental builds. The key-format change also forces a one-time cold rebuild on merge, refreshing npm to >=11.13 immediately. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci-cd.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9fe93ad..a2d75ee 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -21,16 +21,21 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + - name: Compute cache week + id: cachekey + run: echo "week=$(date -u +%Y-%V)" >> "$GITHUB_OUTPUT" + - name: Cache Docker layers uses: actions/cache@v4 with: path: /tmp/.buildx-cache - key: docker-buildx-${{ matrix.version }}-${{ github.sha }} - restore-keys: docker-buildx-${{ matrix.version }}- + key: docker-buildx-${{ matrix.version }}-${{ steps.cachekey.outputs.week }}-${{ github.sha }} + restore-keys: docker-buildx-${{ matrix.version }}-${{ steps.cachekey.outputs.week }}- - name: Build run: | docker buildx build \ + --pull \ --cache-from type=local,src=/tmp/.buildx-cache/${{ matrix.version }} \ --cache-to type=local,dest=/tmp/.buildx-cache/${{ matrix.version }} \ --output type=docker \