go-debos / debos

Debian OS builder
Apache License 2.0
533 stars 136 forks source link

docker: Add arm64 builds to Dockerfile and CI #513

Open nbuchwitz opened 3 weeks ago

nbuchwitz commented 3 weeks ago

Follow-up of @tboehler1 's #505 as suggested by @obbardc

Convert Dockerfile so multiple target architecturebuilds are possible. Also modify the CI pipeline, in order to built a single multi-platform container.

Note that at the current time-being docker cannot export multi-platform containers without an intermediate registry. Thus only the amd64 image is exported for the test stage. Nevertheless the arm64 image is built in the pipeline and also published later to the registry.

If the go-debos project has access to GitHub large runners, the pipeline could be reworked in order to build the container on a native arm runner. This would bring a significant speed improvement and also would allow for testing the arm container. But for know this solution should be sufficient as it tests the build on both architectures and runs the test suite on amd64.

obbardc commented 3 weeks ago

We only have amd64 runners, I think.

nbuchwitz commented 2 weeks ago

All of the review feedback should have been addressed with the latest patch series. I was also able to figure out, why the unit tests failed earlier. Turns out this was unrelated to my modifications and more an issue with GitHub switching over from v1 to v2 compose api. Fixed this in another commit.

CI works as expected (in my fork): https://github.com/nbuchwitz/debos/actions/runs/10537327064

nbuchwitz commented 2 weeks ago

The failed job in https://github.com/go-debos/debos/actions/runs/10537327383/job/29218707965?pr=513#step:6:3778 looks like the arch server was unresponsive during curl run. Could you please restart the job?