v2.0.3+node25.8.1 — GitHub Deployments and PR Test Workflow Overhaul
Runtime Node v2.0.3+node25.8.1
Secure, Distroless, Multi-Arch Node.js Runtime. Built from Scratch.
This is the third patch release on the Node.js 25 maintenance line. The Node.js runtime version remains at 25.8.1 — the image is identical to v2.0.2+node25.8.1. This release adds GitHub Deployment tracking to the release and promotion workflow jobs, removes the GHA cache export from the release build step, and restructures the PR test workflow into distinct build and test jobs backed by a pushed Docker Hub test image.
Pull the Image
# Docker Hub — versioned (recommended for production)
docker pull runtimenode/runtime-node:v2.0.3-node25.8.1
# Docker Hub — latest
docker pull runtimenode/runtime-node:latest
# GitHub Container Registry — versioned (recommended for production)
docker pull ghcr.io/runtimes-node/runtime-node:v2.0.3-node25.8.1
# GitHub Container Registry — latest
docker pull ghcr.io/runtimes-node/runtime-node:latestNote: Docker registries normalize
+to-in tag names. The canonical version tag isv2.0.3+node25.8.1— the registry tag isv2.0.3-node25.8.1.
What's Included
| Component | Detail |
|---|---|
| Base | FROM scratch — no OS, no shell |
| Node.js Version | 25.8.1 (from node:25.8.1-alpine3.23) |
NODE_ENV |
production (baked in) |
TZ |
UTC (baked in) |
| Timezone Database | IANA tzdata (/usr/share/zoneinfo) |
| CA Certificates | Included (/etc/ssl/certs/) |
| DNS Resolution | nsswitch.conf included |
| Runtime Libraries | ld-musl, libstdc++, libgcc_s |
/tmp |
Writable, sticky-bit 1777 |
| Shell | None |
| Package Manager | None |
| Vulnerabilities | 0 known |
| Architectures | linux/amd64, linux/arm64 |
| Provenance & SBOM | Attached to this release |
What's New
- Added
deployments: writeto.github/workflows/deployment.ymland integratedchrnorm/deployment-action@v2withchrnorm/deployment-status@v2so thebuild-and-publishjob creates and tracks aproductionGitHub Deployment (withDeploying ${{ github.ref_name }}as the description) and thepromote-floatingjob creates and tracks apromotiondeployment (withPromoting ${{ github.event.inputs.tag }} → ${{ github.event.inputs.promote_name }}). Both jobs mark the deployment asin_progressat the start and resolve tosuccessorfailureat the end. - Removed
cache-to: type=gha,mode=maxfrom theBuild and push (multi-registry, multi-platform)step in.github/workflows/deployment.ymlso release runs no longer export a GitHub Actions cache layer. - Restructured
.github/workflows/pr-tests.ymlby replacing the singlebuild-and-testjob with separatebuild-imageandtest-imagejobs. The PR image flow changes from a local-only image (push: false,load: true,runtime-node:pr-N) to a pushed Docker Hub image (push: true,runtimenode/test:pr-N) that the matrix test job pulls per platform. Both jobs now authenticate to Docker Hub, QEMU setup intest-imageis restricted to non-linux/amd64runs, and thenode --version,NODE_ENV, andTZassertions are simplified to direct shell checks against${{ env.TEST_IMAGE }}.
Maintenance Line
This tag is published on the maintenance/v2+node25 branch. The v2.x.x+node25.x.x line receives minor and patch updates only — no major Node.js version changes will be made on this branch.
Versioning
Tags follow the pattern v<image_semver>+node<node_version>. The latest tag tracks the most recent stable release on main and is updated by this release.
Immutable Tag
This tag is immutable. Once published, v2.0.3+node25.8.1 will never be moved or overwritten on either registry.