use scarf to serve the images (#21)

This allows us to easily switch between container registries while
keeping the same domain prefix. It also gives access to high-level
statistics on the docker pull which can be useful to find out which
images are being used or not.
This commit is contained in:
Jonas Chevalier 2021-04-21 18:05:42 +02:00 committed by GitHub
parent debbce2425
commit 50b4d08da7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 54 deletions

View file

@ -48,30 +48,29 @@ nixpkgs channel describes.
Here is the current list of images that are provided. Missing one? Send an
[image request](#image-request).
### Docker hub
All images are automatically built and published to Docker Hub, and served
on our custom domain, courtesy of [Scarf](https://scarf.sh).
All images are automatically built and pushed to Docker Hub.
`> ./dockerhub-image-matrix`
`> ./readme-image-matrix`
<!-- BEGIN mdsh -->
| Image / Tag | latest | nixos-20.09 | nixos-20.03 |
| --- | --- | --- | --- |
| [nixpkgs/bash](https://hub.docker.com/r/nixpkgs/bash) | [![](https://images.microbadger.com/badges/image/nixpkgs/bash.svg)](https://microbadger.com/images/nixpkgs/bash) | [![](https://images.microbadger.com/badges/image/nixpkgs/bash:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/bash:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/bash:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/bash:nixos-20.03) |
| [nixpkgs/busybox](https://hub.docker.com/r/nixpkgs/busybox) | [![](https://images.microbadger.com/badges/image/nixpkgs/busybox.svg)](https://microbadger.com/images/nixpkgs/busybox) | [![](https://images.microbadger.com/badges/image/nixpkgs/busybox:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/busybox:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/busybox:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/busybox:nixos-20.03) |
| [nixpkgs/cachix](https://hub.docker.com/r/nixpkgs/cachix) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix.svg)](https://microbadger.com/images/nixpkgs/cachix) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/cachix:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/cachix:nixos-20.03) |
| [nixpkgs/cachix-flakes](https://hub.docker.com/r/nixpkgs/cachix-flakes) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix-flakes.svg)](https://microbadger.com/images/nixpkgs/cachix-flakes) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix-flakes:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/cachix-flakes:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/cachix-flakes:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/cachix-flakes:nixos-20.03) |
| [nixpkgs/caddy](https://hub.docker.com/r/nixpkgs/caddy) | [![](https://images.microbadger.com/badges/image/nixpkgs/caddy.svg)](https://microbadger.com/images/nixpkgs/caddy) | [![](https://images.microbadger.com/badges/image/nixpkgs/caddy:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/caddy:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/caddy:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/caddy:nixos-20.03) |
| [nixpkgs/couchpotato](https://hub.docker.com/r/nixpkgs/couchpotato) | [![](https://images.microbadger.com/badges/image/nixpkgs/couchpotato.svg)](https://microbadger.com/images/nixpkgs/couchpotato) | [![](https://images.microbadger.com/badges/image/nixpkgs/couchpotato:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/couchpotato:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/couchpotato:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/couchpotato:nixos-20.03) |
| [nixpkgs/curl](https://hub.docker.com/r/nixpkgs/curl) | [![](https://images.microbadger.com/badges/image/nixpkgs/curl.svg)](https://microbadger.com/images/nixpkgs/curl) | [![](https://images.microbadger.com/badges/image/nixpkgs/curl:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/curl:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/curl:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/curl:nixos-20.03) |
| [nixpkgs/devcontainer](https://hub.docker.com/r/nixpkgs/devcontainer) | [![](https://images.microbadger.com/badges/image/nixpkgs/devcontainer.svg)](https://microbadger.com/images/nixpkgs/devcontainer) | [![](https://images.microbadger.com/badges/image/nixpkgs/devcontainer:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/devcontainer:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/devcontainer:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/devcontainer:nixos-20.03) |
| [nixpkgs/docker-compose](https://hub.docker.com/r/nixpkgs/docker-compose) | [![](https://images.microbadger.com/badges/image/nixpkgs/docker-compose.svg)](https://microbadger.com/images/nixpkgs/docker-compose) | [![](https://images.microbadger.com/badges/image/nixpkgs/docker-compose:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/docker-compose:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/docker-compose:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/docker-compose:nixos-20.03) |
| [nixpkgs/hugo](https://hub.docker.com/r/nixpkgs/hugo) | [![](https://images.microbadger.com/badges/image/nixpkgs/hugo.svg)](https://microbadger.com/images/nixpkgs/hugo) | [![](https://images.microbadger.com/badges/image/nixpkgs/hugo:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/hugo:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/hugo:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/hugo:nixos-20.03) |
| [nixpkgs/kubectl](https://hub.docker.com/r/nixpkgs/kubectl) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubectl.svg)](https://microbadger.com/images/nixpkgs/kubectl) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubectl:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/kubectl:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubectl:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/kubectl:nixos-20.03) |
| [nixpkgs/kubernetes-helm](https://hub.docker.com/r/nixpkgs/kubernetes-helm) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubernetes-helm.svg)](https://microbadger.com/images/nixpkgs/kubernetes-helm) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubernetes-helm:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/kubernetes-helm:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/kubernetes-helm:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/kubernetes-helm:nixos-20.03) |
| [nixpkgs/nginx](https://hub.docker.com/r/nixpkgs/nginx) | [![](https://images.microbadger.com/badges/image/nixpkgs/nginx.svg)](https://microbadger.com/images/nixpkgs/nginx) | [![](https://images.microbadger.com/badges/image/nixpkgs/nginx:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/nginx:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/nginx:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/nginx:nixos-20.03) |
| [nixpkgs/nix](https://hub.docker.com/r/nixpkgs/nix) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix.svg)](https://microbadger.com/images/nixpkgs/nix) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/nix:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/nix:nixos-20.03) |
| [nixpkgs/nix-flakes](https://hub.docker.com/r/nixpkgs/nix-flakes) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-flakes.svg)](https://microbadger.com/images/nixpkgs/nix-flakes) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-flakes:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/nix-flakes:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-flakes:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/nix-flakes:nixos-20.03) |
| [nixpkgs/nix-unstable](https://hub.docker.com/r/nixpkgs/nix-unstable) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-unstable.svg)](https://microbadger.com/images/nixpkgs/nix-unstable) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-unstable:nixos-20.09.svg)](https://microbadger.com/images/nixpkgs/nix-unstable:nixos-20.09) | [![](https://images.microbadger.com/badges/image/nixpkgs/nix-unstable:nixos-20.03.svg)](https://microbadger.com/images/nixpkgs/nix-unstable:nixos-20.03) |
| Image / Tag | Pull |
| --- | --- |
| [nixpkgs/bash](https://hub.docker.com/r/nixpkgs/bash)| `docker pull docker.nix-community.org/nixpkgs/bash` |
| [nixpkgs/busybox](https://hub.docker.com/r/nixpkgs/busybox)| `docker pull docker.nix-community.org/nixpkgs/busybox` |
| [nixpkgs/cachix](https://hub.docker.com/r/nixpkgs/cachix)| `docker pull docker.nix-community.org/nixpkgs/cachix` |
| [nixpkgs/cachix-flakes](https://hub.docker.com/r/nixpkgs/cachix-flakes)| `docker pull docker.nix-community.org/nixpkgs/cachix-flakes` |
| [nixpkgs/caddy](https://hub.docker.com/r/nixpkgs/caddy)| `docker pull docker.nix-community.org/nixpkgs/caddy` |
| [nixpkgs/couchpotato](https://hub.docker.com/r/nixpkgs/couchpotato)| `docker pull docker.nix-community.org/nixpkgs/couchpotato` |
| [nixpkgs/curl](https://hub.docker.com/r/nixpkgs/curl)| `docker pull docker.nix-community.org/nixpkgs/curl` |
| [nixpkgs/devcontainer](https://hub.docker.com/r/nixpkgs/devcontainer)| `docker pull docker.nix-community.org/nixpkgs/devcontainer` |
| [nixpkgs/docker-compose](https://hub.docker.com/r/nixpkgs/docker-compose)| `docker pull docker.nix-community.org/nixpkgs/docker-compose` |
| [nixpkgs/hugo](https://hub.docker.com/r/nixpkgs/hugo)| `docker pull docker.nix-community.org/nixpkgs/hugo` |
| [nixpkgs/kubectl](https://hub.docker.com/r/nixpkgs/kubectl)| `docker pull docker.nix-community.org/nixpkgs/kubectl` |
| [nixpkgs/kubernetes-helm](https://hub.docker.com/r/nixpkgs/kubernetes-helm)| `docker pull docker.nix-community.org/nixpkgs/kubernetes-helm` |
| [nixpkgs/nginx](https://hub.docker.com/r/nixpkgs/nginx)| `docker pull docker.nix-community.org/nixpkgs/nginx` |
| [nixpkgs/nix](https://hub.docker.com/r/nixpkgs/nix)| `docker pull docker.nix-community.org/nixpkgs/nix` |
| [nixpkgs/nix-flakes](https://hub.docker.com/r/nixpkgs/nix-flakes)| `docker pull docker.nix-community.org/nixpkgs/nix-flakes` |
| [nixpkgs/nix-unstable](https://hub.docker.com/r/nixpkgs/nix-unstable)| `docker pull docker.nix-community.org/nixpkgs/nix-unstable` |
<!-- END mdsh -->
## Adding new images

View file

@ -1,32 +0,0 @@
#!/usr/bin/env bash
#
# Usage: ./dockerhub-image-matrix
set -euo pipefail
microbadge() {
local name=$1
local tag=${2:-latest}
if [[ $tag != latest ]]; then
name=$name:$tag
fi
local homepage=https://microbadger.com/images/$name
# make sure that microbadger has loaded the image
curl -o /dev/null -sfL "$homepage"
echo "[![](https://images.microbadger.com/badges/image/$name.svg)]($homepage)"
}
## Main ##
releases_json=$(nix-instantiate --strict --eval --json)
echo "| Image / Tag | latest | nixos-20.09 | nixos-20.03 |"
echo "| --- | --- | --- | --- |"
for attr in $(echo "$releases_json" | jq -r "keys[]") ; do
name=nixpkgs/$attr
echo "| [$name](https://hub.docker.com/r/$name) | $(microbadge "$name") | $(microbadge "$name" "nixos-20.09") | $(microbadge "$name" "nixos-20.03") |"
done

18
readme-image-matrix Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
#
# Usage: ./dockerhub-image-matrix
set -euo pipefail
## Main ##
releases_json=$(nix-instantiate --strict --eval --json)
echo "| Image / Tag | Pull |"
echo "| --- | --- |"
for attr in $(echo "$releases_json" | jq -r "keys[]") ; do
name=nixpkgs/$attr
echo -n "| [$name](https://hub.docker.com/r/$name)"
echo -n "| \`docker pull docker.nix-community.org/$name\` "
echo "|"
done