I figured out multiarch container images hosted on forgejo.

In this case I cross compile all golang binaries in one job and then use buildah --arch to build container images for different architectures.
This saves a lot of time compared to building the go binaries inside the architecture emulation.

With both images in the manifest, docker/podman pull/run works on amd64 and arm64 with the same image name.

#codeberg #forgejo #buildah #golang #podman #docker

Just connected a self hosted ci runner to my #codeberg account. Love my CI building and publishing new container images right into codeberg's package/image repository when i push to a repo.

#forgejo #buildah

What are you using at the moment for running containers?

#containers #sysadmin #homelab #podman #docker #buildah #lxc #containerd #devops #devsecops

podman
28%
docker
37.9%
buildah
0.8%
LXC
22%
containerd
11.4%
Poll ended at .
This post brought to you by trying to build #Angular DevTools inside a #buildah environment and isn't nearly as absurd as you think it is.

And another small improvement: Cut down the bookwyrm aarch64 image build time from 17 minutes to 6 by installing libsass from apt and instructing the libsass wheel build to use that instead of building the lib.

#HomeLab #buildah #Bookwyrm

New blog post: https://blog.mei-home.net/posts/improving-container-image-build-perf-with-buildah/

I describe how I reduced runtimes of my container image builds, using buildah and not doing emulation via BuildKit anymore.

#HomeLab #WoodpeckerCI #buildah #blog

Improving Multi-Arch Image Build Performance by not Emulating

I've recently improved my container image build performance by not emulating anymore

ln --help

So in short: Running buildah builds for amd64+arm64 on a CephFS RBD backed by an SSD pool sequentially with the OverlayFS driver is faster than running the same build, on CephFS backed by HDDs with the VFS driver, with the arm64 and amd64 builds running in parallel.

#HomeLab #WoodpeckerCI #buildah

Putting the data roots for each buildah container into a separate directory on the shared CephFS volume did work and reduced the overall build time for the FluentD container from 23 minutes to 15 minutes. So the shared dir was part of the problem. But it's still rather slow, and I'm still pretty sure it's because of the VFS driver and CephFS. So let's see whether I can come up with something better.

#HomeLab #Ceph #buildah

And finally done. I've now got a Buildah-based plugin for building container images in Woodpecker CI. It was actually pretty nice to see that Woodpecker plugins aren't anything complicated, just a container with the plugin's code as the entrypoint, and then the config values from the step definition are handed over as env variables.

#HomeLab #WoodpeckerCI #buildah