Building and pushing container images on Codeberg CI

As part of moving my services to EU-based infrastructure, I've been migrating away from GitHub to @Codeberg One of the things I needed was a CI pipeline to build a container image and push it to the Codeberg container registry for my @catfires bot . It took a few tries to get right, so here's what works for me.

https://christof.damian.net/2026/04/building-containers-on-codeberg.html

#codeberg #ci #containers #linux #selfhosting #digitalsovereignty #buildah #forgejo

Building and pushing container images on Codeberg CI

Logo: Codeberg e.V. โ€” CC BY-SA 4.0 As part of moving my services to EU-based infrastructure, Iโ€™ve been migrating away from GitHub to Codeberg, a non-profit code hosting platform based in Germany. One of the things I needed was a CI pipeline to build a container image and push it to the Codeberg container registry for my wildfires project (which also posts to @[email protected]). It took a few tries to get right, so hereโ€™s what works for me.

Christof Damian
@cdamian I'm #selfhosting a Woodpecker runner with local backend in a VM (currently on my PC but will move it to my #homelab once I get the upgraded hardware), which allows me to use local caches, so I don't have to pull a 1.3GB builder image every time, only when the version changes.
@Cyberbeni Woodpecker and runners in general are next on my list. I have servers at Hetzner with a bit of space for this.
@cdamian @Codeberg @catfires The open build service can also generate such images maybe that could be a good combination. You can also hook that into forges like forgejo which Codeberg host's.
@thaodan @Codeberg Nice, where can I read up on this? I am very much a newbie to Codeberg.
@cdamian @Codeberg codeberg itself isn't involved in it beyond the webhook and possibly ci service. I would check the open build service user manual. Once you have setup those builds the obs can function as a container registry.