1
0
Fork 0
mirror of https://github.com/imjasonh/kontain.me synced 2026-07-08 09:04:54 +00:00
No description
Find a file
Jason Hall 10ca7b8a78
Merge pull request #37 from imjasonh/dependabot/go_modules/github.com/google/go-containerregistry-0.6.0
Bump github.com/google/go-containerregistry from 0.5.1 to 0.6.0
2021-08-06 08:39:54 -04:00
.github disable auto-merge 2021-05-26 16:37:15 -04:00
cmd document pull-by-digest limitations for estargz and flatten 2021-07-26 10:51:43 -04:00
pkg Add estargz optimizer, log Range requests 2021-07-24 22:03:08 -04:00
.gitignore add tfstate 2021-02-02 19:23:45 -05:00
.ko.yaml
.terraform.lock.hcl add .terraform.lock.hcl 2021-01-28 21:48:23 -05:00
deploy.sh add services variable, update terraform 2021-01-28 21:18:16 -05:00
go.mod Bump github.com/google/go-containerregistry from 0.5.1 to 0.6.0 2021-08-02 13:30:36 +00:00
go.sum Bump github.com/google/go-containerregistry from 0.5.1 to 0.6.0 2021-08-02 13:30:36 +00:00
kontainme.tf document estargz usage 2021-07-25 14:26:31 -04:00
LICENSE
README.md document wait 2021-04-09 12:38:33 -04:00
terraform.tfstate document estargz usage 2021-07-25 14:26:31 -04:00
terraform.tfstate.backup document estargz usage 2021-07-25 14:26:31 -04:00
test.sh md5ify cache keys 2021-01-02 10:33:12 -05:00

kontain.me serves Docker container images generated on-demand at the time they are requested.

These include:

This repo also serves viz.kontain.me, which visualizes shared image layers using Graphviz.

Caveats

  • 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.

How it works

The service is implemented using 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.