v1.0.0+node24.13.1 — Initial Release
·
82 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Runtime Node v1.0.0+node24.13.1
Secure, Distroless, Multi-Arch Node.js Runtime. Built from Scratch.
This is the first release of Runtime Node. It ships a production-grade distroless Node.js runtime image assembled from node:24.13.1-alpine3.23 into a FROM scratch base, with NODE_ENV=production and TZ=UTC baked in, zero known vulnerabilities, and multi-arch support for linux/amd64 and linux/arm64.
Pull the Image
# Docker Hub — versioned (recommended for production)
docker pull runtimenode/runtime-node:v1.0.0+node24.13.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:v1.0.0+node24.13.1
# GitHub Container Registry — latest
docker pull ghcr.io/runtimes-node/runtime-node:latestWhat's Included
| Component | Detail |
|---|---|
| Base | FROM scratch — no OS, no shell |
| Node.js Version | 24.13.1 (from node:24.13.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
This is the initial release. Everything below is new.
- Introduced a two-stage
Dockerfilewith abuilderstage based onnode:24.13.1-alpine3.23and aruntimestage based onFROM scratch. - Added
script.sh— a hardened shell installer that reads pinned package names fromdependencies/requirements.txtand installs them viaapk add --no-cachein the builder stage, with validation for root privileges and file existence. - Added
dependencies/requirements.txtpinningtzdataandca-certificatesas the only Alpine packages installed in the builder stage. - Set
ENV NODE_ENV=productionandENV TZ=UTCin the runtime stage, baking both defaults into the image at build time. - Copied
/tmpwith explicit--chmod=1777sticky-bit permissions,/etc/nsswitch.conffor DNS resolution,/usr/share/zoneinfofor timezone data,/etc/ssl/certs/ca-certificates.crtand/etc/ssl/cert.pemfor TLS,ld-musl-*.so.1,libstdc++.so.6, andlibgcc_s.so.1for runtime library support, and/usr/local/bin/nodeas the sole executable — all with--chmod=555. - Added
.github/workflows/deployment.yml— publishes multi-arch images to Docker Hub and GHCR onv*tag pushes with provenance attestations and an SBOM attached. Supports manual promotion of any published versioned tag to a floating tag (e.g.latest) viaworkflow_dispatch, with pre-promotion validation checks against both registries. - Added
.github/workflows/pr-tests.yml— lints the Dockerfile with Hadolint on every PR targetingmain,develop*, ormaintenance/v*, then builds and runs five integrity tests per platform (linux/amd64andlinux/arm64): Node.js smoke test (node --version), no shell present, no package manager present,NODE_ENVisproduction, andTZisUTC. - Added
.github/dependabot.yml— configures Dependabot to monitor theDockerfilefor Docker base image updates targeting thedevelopbranch. - Added
.github/PULL_REQUEST_TEMPLATE.mdpre-filling the three required PR description sections (Summary, Files Changed, Key Changes). - Added GitHub issue templates for bug reports, documentation issues, feature requests, new platform requests, Node.js version bumps, and tzdata version bumps, with
config.ymldisabling blank issues and surfacing the private security advisory link. - Added
README.md,CONTRIBUTING.md,SECURITY.md, andCODE_OF_CONDUCT.mdas the initial documentation set. - Added
.github/assets/icon.svgas the shared branding icon used across all documentation headers.
Versioning
Tags follow the pattern v<image_semver>+node<node_version>. The latest tag tracks the most recent stable release.
Immutable Tag
This tag is immutable. Once published, v1.0.0+node24.13.1 will never be moved or overwritten on either registry.
Full Changelog
https://github.com/Runtimes-Node/Runtime-Node/commits/v1.0.0+node24.13.1