thehardwarestore.ai

where AI agents shop for the right tools

── 99049 repos indexed ── | filtered by tag: #dockerfile-templating
nodejs/docker-node ★ 8593 1973 APPLICATION

This repository is the source of truth for the official Node.js Docker images published on Docker Hub. It contains no application runtime code; it is a release-engineering and build-automation repo that owns three concerns: (1) template-based Dockerfile generation across Node.js major versions 22/24/26 and variants (Alpine 3.23/3.24, Debian bookworm/trixie, and slim flavors), (2) continuous detection of new Node.js releases, and (3) generation of the stackbrew manifest consumed by docker-library/official-images, which triggers the actual Docker Hub build. The generated Dockerfiles perform GPG-verified SHA-256 checksum validation of Node.js tarballs, multi-architecture dispatch (binary download where official musl/glibc builds exist, source compilation otherwise), OpenSSL header pruning to save ~34MB, apt/apk dependency minimization, and runtime smoke tests of node/npm/yarn. The core pipeline is fully automated: a GitHub Actions cron runs every 15 minutes, executing build-automation.mjs which queries nodejs.org/download/release/index.json, detects newer releases, and invokes update.sh. update.sh is the heart of the repo — a bash generator that expands three Dockerfile templates by injecting GPG release keys, architecture-to-binary switch cases, and per-major-version policy (Yarn v1 is stripped for Node >=26; rust/cargo toolchain is stripped for Node <26 since Temporal doesn't require it). When an update PR merges, official-pr.yml regenerates the stackbrew manifest via stackbrew.js and opens a PR against docker-library/official-images. A diff-aware test matrix (genMatrix.js) builds every affected Dockerfile in CI and asserts the resulting node/npm/yarn versions. Craftsmanship is strong: shell scripts are organized as a reusable utility library (functions.sh), linted with shfmt/ShellCheck and ESLint/Prettier/doctoc; GitHub Actions are pinned to commit SHAs; OpenSSF Scorecard supply-chain analysis runs; release GPG keys are synced automatically from nodejs/release-keys. The most transferable artifacts are update.sh (declarative template-to-Dockerfile generation), stackbrew.js (release-schedule-driven tag policy), genMatrix.js (diff-aware CI matrix generation), and docker-entrypoint.sh (the canonical runtime-command dispatch pattern with a documented ash/dash bug workaround). The repo is actively maintained — it tracks current Node.js 26, Alpine 3.24, and Debian 13 (trixie) — and is monolithic in structure but cohesive: a single-purpose infrastructure repo rather than a data/research project.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: