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
2020-10-10 21:11:29 -04:00
cmd api: fix for GCP buildpacks 2020-10-10 21:11:29 -04:00
pkg write blobs and manifests concurrently 2020-09-18 16:16:54 -04:00
.gitignore Add cnb.kontain.me, refactor and share a lot 2019-05-08 14:57:06 -04:00
.ko.yaml base on gcp buildpacks 2020-09-16 20:58:32 -04:00
deploy.sh Build multi-arch images in ko.kontain.me 2020-10-03 10:13:20 -04:00
go.mod Respect .ko.yaml's baseImageOverrides, if found 2020-10-03 21:07:17 -04:00
go.sum handle mirror.kontain.me/mirror.kontain.me/... 2020-10-10 20:47:42 -04:00
LICENSE Use ko to build, add LICENSE headers 2018-12-08 17:56:33 -05:00
README.md correctly mirror manifest lists for multi-arch images 2020-09-18 15:50:29 -04:00
test.sh Try to migrate to GCP buildpacks 2020-05-29 17:59:22 -04:00

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

random.kontain.me

docker pull random.kontain.me/random:latest serves an image containing random data. By default the image contains one layer containing 10 MB of random bytes. You can request a specific size and shape of random image. For example, random.kontain.me/random:4x100 generates a random image of 4 layers of 100 random bytes each.

ko.kontain.me

docker pull ko.kontain.me/ko/[import path] serves an image containing a Go binary fetched using go get and built into a container image using ko.

For example, docker pull ko.kontain.me/ko/github.com/google/ko/cmd/ko will fetch, build and (eventually) serve a Docker image containing ko itself. Koception!

buildpack.kontain.me

docker pull buildpack.kontain.me/[ghuser]/[ghrepo]:[revision] serves an image fetched from source on GitHub and built using CNCF Buildpacks

For example, docker pull buildpack.kontain.me/buildpack/sample-java-app:b032838 fetches, builds and serves a sample Java app.

mirror.kontain.me

docker pull mirror.kontain.me/[image] will pull the an image (if it can) and cache the manifest and layers. Subsequent pulls will, if possible, serve from the cache.

This acts as a simple registry mirror which can reduce the number of pulls from the original registry, in case they impose request limits or exorbitant bandwidth costs or latencies.

Caveats

The registry does not accept pushes and does not handle requests for images by digest. 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.

How it works

The service is implemented using Google Cloud Run, with a custom domain mapping to https://kontain.me which provides a managed SSL certificate.

When the service receives a request for an image manifest, it parses the request and generates layers for the requested image, writing the blobs to Google Cloud Storage. After it receives the manifest, docker pull fetches the blobs. The app simply redirects to Cloud Storage to serve the blobs. Blobs are deleted after 10 days.