24. Gulaschprogrammiernacht

Popping podman/dockers bonnet: Unraveling the image pull process while developing for Forgejo
07.06.2026 , ZKM Medientheater
Sprache: English

Developing an OCI image pull through cache for Forgejo had some interesting rabbit holes and it was surprisingly hard to get in depth information on a supposedly well known system. So I got to deep dive and do bits of research and reverse engineering to make the parts communicate properly.

In this talk I'll share my insights into the process of pulling OCI images according to the distribution spec (and its slight deviations) and try to answer questions like:
- Which requests are sent by Podman or the Docker daemon when doing docker pull image?
- Whats that with the /v2 endpoint and discovery?
- How about authentication?
- What does the pull sequence look like?
- Help, I got an index manifest, what should I do?
- How should Forgejo communicate with the daemon for a successful pull?

If there is time, I'll also share small pieces of knowledge of where the implementation sits in the Forgejo codebase and how it interacts with the existing package registry.


I've stepped over to the IT a few years back and love building software and systems.
Currently involved in developing for Forgejo, so my most used language is Go. However in my time as software person I've also developed in C++, Kotlin, Python and Clojure. I also love to tamper in the Audio Realm, building a system for intuitive audio production.