Files
renovate/lib/modules/manager
Jamie Tanna 9b87f8de2f feat(manager/dockerfile): extract apk add packages from RUN instructions (#45691)
* feat(manager/dockerfile): extract `apk add` packages from `RUN` instructions

As noted in #43711, users pin APK packages in their Dockerfiles and want
Renovate to update them, which so far has needed a custom manager[0].

Now that we have the `apk` datasource, we can extract these ourselves,
and parse the `RUN` instruction more effectively than a regex can.

We can do this by:

- extracting `apk add` dependencies when processing a `Dockerfile`
- ignoring common flags to `apk` before we extract the dependency names,
  which wasn't straightforward with a Custom Manager
- ignoring i.e. `--virtual .build-deps`
- handle example cases from [0] and other usages i.e. with a comment in
  between lines
- ensure that `final` doesn't run against the final `apk` install
- removing the docs for how to do this with a Custom Manager, as that
  complexity is no longer needed
- skipping `unspecified-version` and `contains-variable`

We inform the user that they will need to override the `registryUrls`,
as we already have a default on the `apk` datasource and can't override
it in a straightforward means.

[0]: https://www.jvt.me/posts/2025/03/24/renovate-regex-dockerfile-apk/

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>

* fixup! feat(manager/dockerfile): extract `apk add` packages from `RUN` instructions

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>

* fixup! feat(manager/dockerfile): extract `apk add` packages from `RUN` instructions

Co-Authored-By: Claude Opus 5 <jamie.tanna+claude-code@mend.io>

* fixup! feat(manager/dockerfile): extract `apk add` packages from `RUN` instructions

Find the command by name wherever it sits in the tokens, rather than
skipping an allowlist of shell keywords and variable assignments, so that
a wrapper program like `sudo`, `chroot /mnt` or `timeout 30` is handled
too.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>

* fixup! feat(manager/dockerfile): extract `apk add` packages from `RUN` instructions

---------

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-17 08:00:50 +00:00
..