1
0
Fork 0
mirror of https://github.com/imjasonh/kontain.me synced 2026-07-16 12:21:53 +00:00
kontain.me/README.md

39 lines
1.7 KiB
Markdown
Raw Normal View History

2019-05-10 10:38:41 -04:00
**kontain.me** serves Docker container images generated on-demand at the
time they are requested.
2018-12-08 16:35:47 -05:00
These include:
* [`random.kontain.me`](./cmd/random), which serves randomly-generated images.
* [`mirror.kontain.me`](./cmd/mirror), which pulls and caches images from other registries.
* [`flatten.kontain.me`](./cmd/flatten), which pulls and flattens images from other registries,
so they contain only one layer.
2020-12-23 21:29:22 -05:00
* [`kaniko.kontain.me`](./cmd/kaniko), which builds a GitHub repo using
[Kaniko](https://github.com/GoogleContainerTools/kaniko).
* [`ko.kontain.me`](./cmd/ko), which builds a Go binary into a container image using
[`ko`](https://github.com/google/ko).
* [`buildpack.kontain.me`](./cmd/buildpack), which builds a GitHub repo using [CNCF
Buildpacks](https://buildpacks.io).
2019-05-10 10:38:41 -04:00
2020-12-17 06:58:05 -05:00
This repo also serves [`viz.kontain.me`](./cmd/viz), which visualizes shared
image layers using [Graphviz](https://graphviz.org/).
2019-05-10 10:38:41 -04:00
# Caveats
2020-12-17 06:45:34 -05:00
* The registry does not accept pushes.
* This is a silly hack and probably isn't stable. Don't rely on it for anything
serious.
2020-12-23 21:29:22 -05:00
* 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.
2018-12-08 16:35:47 -05:00
2019-05-10 10:38:41 -04:00
# How it works
2018-12-08 16:35:47 -05:00
2019-04-25 17:44:04 -04:00
The service is implemented using [Google Cloud
2020-12-17 06:58:05 -05:00
Run](https://cloud.google.com/run).
When the service receives a request for an image manifest, it parses the
2020-12-23 21:29:22 -05:00
request and generates layers for the requested image, writing the manifest and
blobs to [Google Cloud Storage](https://cloud.google.com/storage/). After it
receives the manifest, `docker pull` fetches the blobs. The app simply
redirects to Cloud Storage to serve manifests and blobs.