build(backend): pin base image to node 24.19.0 by digest - #2047
Open
marians wants to merge 1 commit into
Open
Conversation
`FROM node:24-trixie-slim` floats. The tag is republished whenever Debian ships security updates into the -slim base, so the Node runtime we deploy can change without any commit here — and because a moved FROM digest invalidates every layer beneath it, it also guarantees a fully cold image build on that run. 24-trixie-slim currently resolves to 24.19.0 at digest 0711b541, so this pin is behaviourally identical to what we ship today; it only makes the version explicit and moves future changes into reviewable Renovate PRs.
1 task
Member
Author
|
Fix is in #2048 (pure prune: 173 deletions, no version changes). I'll rebase this PR once that lands, so its CI actually exercises the pinned base image. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Pins the backend image's base from the floating
node:24-trixie-slimto a full version plus digest:FROM node:24.19.0-trixie-slim@sha256:0711b541c1c33a8a530ac4f0d391baa9a15b3d804695b1b24a47daa5fb60e74d24-trixie-slimis republished whenever Debian ships security updates into the-slimbase, which has two consequences:lts-trixie-slim, so a future Node LTS transition would move it across a major.FROMdigest invalidates every layer beneath it, so no Docker layer cache can survive it.What is the effect of this change to users?
None.
24-trixie-slimresolves to24.19.0at digest0711b541…right now, so this pin is byte-identical to what we already ship. It only makes the version explicit and moves future base-image changes into reviewable Renovate PRs instead of arriving unannounced.Any background context you can provide?
Found while measuring the image build for giantswarm/architect-orb#871, which adds a BuildKit registry layer cache to
push-to-registries. Two builds of an unchangedyarn.lockthree days apart were both fully cold, becausenode:24-trixie-slimhad been republished at2026-08-05T08:39:10Zin between. With the layer cache that difference is ~2m vs ~5m30s onpush-to-registries; without a pin the cache is only useful between upstream republishes.This is worth doing on reproducibility grounds regardless of whether that orb change lands.
Verified:
linux/amd64(plus arm64/ppc64le/s390x) —mediaType: application/vnd.oci.image.index.v1+json.hadolintoutput is unchanged frommain(same four pre-existingDL3008/DL3013/DL3042/DL3066findings, no new ones). Pinning is whatDL3006/DL3007ask for.renovate-presets:default.json5enables thedockerfilemanager, itsignorePathsdon't coverpackages/backend/Dockerfile, and the onlypinDigests: falserule is scoped to Giant Swarm-owned GitHub Actions.One observation, not addressed here: CI builds with
cimg/node:24.18.0(.circleci/workflows.yml) while the runtime image is now explicitly 24.19.0. That minor mismatch already exists today — it was just invisible while the runtime floated. Worth aligning separately if we want build and runtime on the same Node.Do the docs need to be updated?
No.
Should this change be mentioned in the release notes?
Not applicable — changesets cover the published
@giantswarm/backstage-plugin-*packages, and this touches onlypackages/backend's Dockerfile. The app image and Helm chart release from the conventional-commit PR title via git-cliff, wherebuild:lands in "Changed" with a patch bump.