Skip to content

add OCI stage detection to Dockerfile signal#9

Merged
jaredLunde merged 4 commits into
mainfrom
jared/oci-stages
Apr 16, 2026
Merged

add OCI stage detection to Dockerfile signal#9
jaredLunde merged 4 commits into
mainfrom
jared/oci-stages

Conversation

@jaredLunde
Copy link
Copy Markdown
Contributor

Detects the OS package manager and distro from each FROM image using a
three-pass algorithm (standalone distros → tag keyword scan → known
runtime defaults), and extracts packages installed via RUN commands in
every stage. Surfaces as oci_stages: Vec<OciStage> on Service.

Each OciStage carries the stage name (FROM ... AS name), detected
manager (apt/apk/yum/dnf), distro codename/version from the tag (e.g.
"noble", "bookworm", "3.19"), and raw package names as written. All
stages are collected, not just the last, so build-time and runtime deps
are both visible and labeled.

system_deps (language-signal inferences, always apt-canonical) and
oci_stages (Dockerfile declarations, raw) are intentionally separate.

jaredLunde and others added 4 commits April 15, 2026 21:12
Detects the OS package manager and distro from each FROM image using a
three-pass algorithm (standalone distros → tag keyword scan → known
runtime defaults), and extracts packages installed via RUN commands in
every stage. Surfaces as `oci_stages: Vec<OciStage>` on `Service`.

Each OciStage carries the stage name (FROM ... AS name), detected
manager (apt/apk/yum/dnf), distro codename/version from the tag (e.g.
"noble", "bookworm", "3.19"), and raw package names as written. All
stages are collected, not just the last, so build-time and runtime deps
are both visible and labeled.

`system_deps` (language-signal inferences, always apt-canonical) and
`oci_stages` (Dockerfile declarations, raw) are intentionally separate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jaredLunde jaredLunde merged commit 719e242 into main Apr 16, 2026
1 check passed
@jaredLunde jaredLunde deleted the jared/oci-stages branch April 16, 2026 04:23
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.

1 participant