Repository navigation
chore(docker): bump runtime base from alpine 3.20 to 3.24 - #155
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe Dockerfile runtime stage now uses ChangesRuntime image update
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Other Merge Risk: ⚪ Minimal · up to The runtime image update is limited to the Alpine version bump, with no identified merge-blocking impact. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Alpine 3.20 reached end of life and no longer receives security advisories, so Trivy reports zero OS findings for it regardless of actual state. 3.24 is the current stable release, supported until 2028-06-01.
4a868c1 to
8a21b4d
Compare
arkana-ai-bot
left a comment
There was a problem hiding this comment.
Arkana Review — #155
Scope: one-line runtime base bump, alpine:3.20 → alpine:3.24. No protocol-level code touched; no VTXO/signing/forfeit/round/exit impact. No cross-repo API surface affected.
Findings
[Rebase required — CI will fail] Dockerfile:29
The PR body correctly identifies that the Trivy scan will fail on the gRPC CVE-2026-84445 gobinary finding until #154 is merged and this branch is rebased. However, #154 is already merged into master (commit 41b9954). The branch just needs a rebase onto master before CI can go green. No code change needed — purely a rebase.
[Minor / pre-existing] Dockerfile:29 — no image digest pin
FROM alpine:3.24 resolves at pull time by tag. A mutable tag means a silent base swap is possible if the upstream tag is ever force-pushed. This pattern predates this PR and is consistent with the existing builder stage (FROM golang:1.26.6 AS builder). Recommend tracking a sha256 digest for reproducibility and supply-chain hygiene, but this is out of scope for this PR.
[Minor / pre-existing] Dockerfile — container runs as root
No USER directive exists in the runtime stage. Pre-existing; not introduced here.
What's correct
- Alpine 3.20 is EOL; 3.24 is the current stable with active advisories through 2028-06-01. The bump is the right call.
RUN apk update && apk upgradein the runtime stage correctly pulls the latest fixes from the 3.24 branch (including the libssl3/libcrypto3 fix noted in the PR body).- Trivy workflow (
trivy.yaml) is correctly pinned to a commit hash (57a97c7e…) and usesexit-code: "1", so the scan is enforcement, not advisory-only. - The one-line diff is minimal and the change is straightforward.
Summary: Change is correct and necessary. The only blocker is rebasing onto master so the gRPC fix from #154 is included and Trivy CI passes.
Problem
The runtime stage pins
alpine:3.20. That release reached end of life and no longer receives security advisories. Trivy says so directly during the scan:The consequence is that the
0OS-package finding count for this image is not evidence of a clean base — it is the absence of data.RUN apk update && apk upgradealso cannot pull fixes that the branch no longer publishes.Change
Bump the runtime base to
alpine:3.24, the current stable release (published 2026-06-09, supported until 2028-06-01 peralpinelinux.org/releases.json). One line; the builder stage is untouched.Verification
Built the image with
docker build --no-cacheto match a clean CI runner, then ran the same scan as the workflow (Trivy 0.69.3,--ignore-unfixed --pkg-types os,library --severity CRITICAL,HIGH):Alpine findings are now a real zero, on a branch that still publishes advisories.
apk upgradecorrectly pullslibcrypto3/libssl33.5.8-r0, which carries the fix for CVE-2026-14456.Worth noting for reviewers: an incremental (cached) build of this change can appear to introduce two HIGH openssl findings. That is a stale
RUN apk update && apk upgradelayer being reused, not a regression from 3.24. CI builds without a cache, so it is not affected. Use--no-cachewhen reproducing locally.Relationship to #154
This branch is cut from
master, so it still carriesgoogle.golang.org/grpc v1.83.1and the Trivy check here will fail on CVE-2026-84445 until #154 merges. That gRPC finding is the sole remaining item and is exactly what #154 fixes.Suggested order: merge #154 first, then rebase this branch — the scan then reports zero across both targets.
Summary by CodeRabbit