bake-action icon indicating copy to clipboard operation
bake-action copied to clipboard

Building on multiple native nodes

Open ndench opened this issue 2 years ago • 4 comments

This a great, github action. Makes it super easy to get all our required docker images built and published in CI.

Is it possible to support building across multiple native nodes? When building our images for both linux/arm64 and linux/amd64 using QEMU, the build takes 60 minutes in CI. By splitting the build to run on two separate native nodes the build time is reduced to 15 minutes.

The only problem with this approach is that both builds push their own manifest separately instead of a combined one at the end. So the latest pushed image only knows of a single platform.

ndench avatar Feb 07 '22 02:02 ndench

I started with the multi node approach, but then separated manifest is a no deal.

fzipi avatar Mar 27 '22 13:03 fzipi

I agree, it makes multi node builds unusable. I was hoping there's some way of building multiple nodes and generating the manifest at the end.

ndench avatar Mar 28 '22 00:03 ndench

🤔 Looks like this thecnique can be adapted for doing it.

fzipi avatar Mar 28 '22 10:03 fzipi

https://github.com/docker/setup-buildx-action/pull/165 could fix this. See https://github.com/crazy-max/docker-setup-buildx-action/blob/append/docs/advanced/append-nodes.md for more info.

Live example available: https://github.com/docker/packaging/blob/fe177e05bb5a23115813f1c476705c3ae7039c32/.github/workflows/.release.yml#L66-L87

crazy-max avatar Oct 03 '22 17:10 crazy-max