Skip to content

chore(docs): bump example Dockerfiles to Node 22 LTS + Caddy 2.11, SHA-pinned#260

Merged
Cre-eD merged 1 commit into
mainfrom
chore/example-dockerfiles-node22-caddy211
May 16, 2026
Merged

chore(docs): bump example Dockerfiles to Node 22 LTS + Caddy 2.11, SHA-pinned#260
Cre-eD merged 1 commit into
mainfrom
chore/example-dockerfiles-node22-caddy211

Conversation

@Cre-eD

@Cre-eD Cre-eD commented May 16, 2026

Copy link
Copy Markdown
Contributor

Why

Docs/examples were teaching consumers an EOL pattern.

  • node:18-alpineEOL April 2025, last Docker Hub push 2025-03-27 (~14 months ago). No security updates since.
  • node:22-alpine is the current active LTS (supported until October 2027), refreshed this week.
  • caddy:2.7-alpine last updated May 2024; caddy:2.11-alpine is current stable, refreshed this week.

Two improvements in one pass:

  1. Bump base images to current LTS / stable across all 7 example Dockerfiles in docs/docs/examples/.
  2. Pin every FROM by @sha256:<digest> — modeling the secure-by-default practice we recommend for production. Anyone copying these as a starting point now inherits a pinned, deterministic, reproducible build.

Side benefit — OpenSSF Scorecard

Closes 8 of the Pinned-Dependencies warnings (containerImage findings). Score should bump from 6/10 → ~7-8/10 on next Scorecard rescan.

Digests used

Resolved via Docker Hub registry API on 2026-05-16:

Image Tag Digest
node 22-alpine sha256:757ec364de4d37cedf30871be2988927660834e656e9aa52aad9ac194814c30c
caddy 2.11-alpine sha256:3739ea4f0c877259a693d932693cf8f3408e9a9497c004f031b0e830e93e1546

Files touched

docs/docs/examples/advanced-configs/high-resource/Dockerfile
docs/docs/examples/ecs-deployments/backend-service/Dockerfile
docs/docs/examples/ecs-deployments/blockchain-service/Dockerfile
docs/docs/examples/ecs-deployments/blog-platform/caddy.Dockerfile
docs/docs/examples/ecs-deployments/meteor-app/Dockerfile        (multi-stage: 2 FROM lines)
docs/docs/examples/kubernetes-native/streaming-platform/Dockerfile
docs/docs/examples/kubernetes-vpa/Dockerfile

Test plan

  • All Dockerfiles still parse (FROM syntax preserved)
  • mkdocs builds these as documentation pages — no syntax that would break MD rendering (just code blocks)
  • Follow-up after merge: confirm Scorecard rescan picks up the change (next daily cron after merge)

Part of the OpenSSF score climb plan documented in HARDENING.md Phase 8.

…A-pinned

Two improvements in one pass:

1. Bump base images to current LTS / stable. Today (2026-05-16):
   - Node 18 LTS ended April 2025 — last `node:18-alpine` push was
     2025-03-27, no security updates since.
   - Node 22 is the current active LTS (until October 2027), refreshed
     this week. → bumped 6 example Dockerfiles to `node:22-alpine`.
   - Caddy 2.7 last updated May 2024; Caddy 2.11 is current stable.
     → bumped the 1 caddy example to `caddy:2.11-alpine`.

2. Pin every example FROM by `@sha256:<digest>`. Documentation examples
   should model the secure practice we recommend for production —
   readers copying these as a starting point now inherit a pinned,
   deterministic, reproducible build. Closes the OpenSSF Scorecard
   `Pinned-Dependencies` warnings for the 8 example Dockerfiles
   (containerImage findings).

Digests used (resolved via Docker Hub registry API on 2026-05-16):
  node:22-alpine   sha256:757ec364de4d37cedf30871be2988927660834e656e9aa52aad9ac194814c30c
  caddy:2.11-alpine sha256:3739ea4f0c877259a693d932693cf8f3408e9a9497c004f031b0e830e93e1546

Files touched (all in `docs/docs/examples/`):
  advanced-configs/high-resource/Dockerfile
  ecs-deployments/backend-service/Dockerfile
  ecs-deployments/blockchain-service/Dockerfile
  ecs-deployments/blog-platform/caddy.Dockerfile
  ecs-deployments/meteor-app/Dockerfile             (multi-stage: 2 FROM lines)
  kubernetes-native/streaming-platform/Dockerfile
  kubernetes-vpa/Dockerfile

Refs OpenSSF Scorecard climb plan in HARDENING.md.

Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
@Cre-eD
Cre-eD requested a review from smecsia as a code owner May 16, 2026 11:29
@github-actions

Copy link
Copy Markdown

Semgrep Scan Results

Repository: api | Commit: bd1c33f

Check Status Details
✅ Semgrep Pass 0 total findings (no error/warning)

Scanned at 2026-05-16 11:29 UTC

@github-actions

Copy link
Copy Markdown

Security Scan Results

Repository: api | Commit: bd1c33f

Check Status Details
✅ Secret Scan Pass No secrets detected
⚠️ Dependencies (Trivy) High 2 high, 3 total
⚠️ Dependencies (Grype) High 2 high, 3 total
📦 SBOM Generated 470 components (CycloneDX)

Scanned at 2026-05-16 11:30 UTC

@Cre-eD
Cre-eD merged commit 08098f1 into main May 16, 2026
18 checks passed
@Cre-eD
Cre-eD deleted the chore/example-dockerfiles-node22-caddy211 branch May 16, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants