Why this matters
Floating tags (e.g., 20, 20-alpine) can change behavior between builds, causing non-deterministic failures.
Use a fully qualified Node.js tag including major.minor.patch, not floating majors/minors.
Floating tags (e.g., 20, 20-alpine) can change behavior between builds, causing non-deterministic failures.
Side-by-side examples engineers can pattern-match during review.
FROM node:20-alpineFROM node:20.11.1-alpineFROM node:20FROM node:20.11.1From the same buckets as this rule.