Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

can bootable containers be built using tools other than podman/buildah? #1923

Answered by jeckersb
tenturestept asked this question in Q&A
Discussion options

specifically i was wondering about regular old docker buildx build.

  1. does it work?
  2. is it officially supported / likely to keep working?
You must be logged in to vote

It's not currently tested with docker.

As a complete guess, I think building a derived bootc image (FROM quay.io/fedora/fedora-bootc:f43 or similar) would probably work fine. Building a new image from scratch is much more likely to encounter problems in the differences between podman/buildah and docker.

Replies: 2 comments 6 replies

Comment options

It's not currently tested with docker.

As a complete guess, I think building a derived bootc image (FROM quay.io/fedora/fedora-bootc:f43 or similar) would probably work fine. Building a new image from scratch is much more likely to encounter problems in the differences between podman/buildah and docker.

You must be logged in to vote
1 reply
Comment options

I haven't tried this, but if one is really motivated to make scratch builds work with Docker, it should work to RUN buildah as part of the build process, but have it output a rootfs, then in a FROM scratch, you COPY the rootfs, add the necessary labels/metadata, and then in a separate step after the docker buildx build, you could run chunkah to get layering. (I realize I'm probably not actually answering the spirit of the question hehe.)

A better answer for docker would be a buildkit frontend for building bootable containers declaratively. And I could imagine something like that happening if buildah also gains support for buildkit/LLB with sufficient overlap/compatibility with the docker version.

Answer selected by tenturestept
Comment options

At BlueBuild we use buildx by default in GitHub Actions. Works really well.

You must be logged in to vote
5 replies
Comment options

nice! why did you go with buildx?

Comment options

I think the perf in GHA is a bit better and we can leverage caching, but I'm not an expert here, that would be @gmpinder (our build system dev/wizard)

Comment options

Yeah, there's better caching opportunities when using Docker in the GitHub actions The only problem is we cannot do any kind of chunking of the image using docker, so you end up getting all of the layers that have changed which can make updates bigger. Now I want to specify that this is only for building. Docker is not used to store any of the images that bootc manages when booting.

Comment options

FWIW, I've been working on chunkah which can split images and can be used with Docker through some contortions.

It's still not where I want it to be for bootable container images, but it should definitely be better than a single layer. :)

Comment options

This looks really cool. I'll have to take a closer look at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /