Serving container images generated on-demand, at the time they are requested.
These include:
random.kontain.me, which serves randomly-generated images.mirror.kontain.me, which pulls and caches images from other registries.flatten.kontain.me, which pulls and flattens images from other registries, so they contain only one layer.ko.kontain.me, which builds a Go binary into a container image usingko.apko.kontain.me, which builds a minimal base image containing APK packages, usingapko.git.kontain.me, which serves an image containing a shallow clone of a Git repo at a given branch, tag, or commit, usinggo-git.
This repo also serves a few non-registry oddities:
viz.kontain.mevisualizes shared image layers using Graphviz.infinite-git.kontain.meis a Git HTTP server that generates a new commit every time the repo is pulled.infinite-go.kontain.meis a Go module that generates a new module version every time it's fetched.
- The registry does not accept pushes.
- This is a silly hack and probably isn't stable. Don't rely on it for anything serious.
- It could probably do a lot of smart things to be a lot faster. 🤷
- Blobs and manifests are cached for 24 hours wherever possible, but will be rebuilt from scratch after that time.
The service is built on Google Cloud Run.
When the service receives a request for an image manifest, it parses the
request and generates layers for the requested image, writing the manifest and
blobs to Google Cloud Storage. After it
receives the manifest, docker pull fetches the blobs. The app simply
redirects to Cloud Storage to serve manifests and blobs.