Skip to content

Conversation

@cgwalters
Copy link
Collaborator

See individual commits.

@bootc-bot bootc-bot bot requested a review from jmarrero November 17, 2025 17:02
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the Dockerfile build process to use rpmbuild for creating the bootc package. This is a significant improvement as it modularizes the build logic into separate, cacheable stages and scripts, making the build process cleaner and more efficient. The changes are well-structured, moving complex shell logic out of the Dockerfile into dedicated scripts.

My main feedback is a small but critical issue with build argument handling for the RPM version, which I've commented on. Once that is addressed, this looks like a great improvement to the project's build system.

@cgwalters
Copy link
Collaborator Author

I was getting quite confused until I finally realized that the failure here is specific to fedora and things work on the default c10s...digging into what the difference is in the build env there.

This broke caching with podman 5.6; it's fixed as of containers/buildah@fb6ce9d
but it's easy enough for us to just use the `LABEL` instruction anyways.

Assisted-by: Claude Code (Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
This was used at one point for composefs testing, but no longer.

Assisted-by: Claude Code (Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
Squashes a podman build warning; variant and base only apply to the
base image.

Signed-off-by: Colin Walters <walters@verbum.org>
See the comment for more info.

Signed-off-by: Colin Walters <walters@verbum.org>
- The ci/Dockerfile.fcos has been unused for some time and
  testing with FCOS derivatives is already done outside of CI
  here
- Drop the bits which reference git in the Makefile, a new rule
  I'm trying to impose here is that nothing in the build system
  should rely on git (or at least not rely on being built
  from a git repository)

Signed-off-by: Colin Walters <walters@verbum.org>
We were bit before by just doing a `COPY` of our binaries overtop of
the base image because that doens't remove old files.

Replace the pre-build approach with rpmbuild, and then change to
do an rpm-based upgrade so that we fix that problem.

Note that we still preserve incremental rebuilds by overriding
some of the RPM build process.

Assisted-by: Claude Code (Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters
Copy link
Collaborator Author

OK I think this one is now passing tests!

Now that we've cut over to always building + installing via
an (RPM) package in our build system, we need to always install
the dracut module.

Signed-off-by: Colin Walters <walters@verbum.org>
Copy link
Collaborator

@jeckersb jeckersb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I played around with this a bit, feels pretty good to me!

@cgwalters cgwalters merged commit fc09d06 into bootc-dev:main Nov 19, 2025
37 checks passed
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