quentin.dufour.io/_posts/2023-04-06-un-registre-statique-docker-avec-garage.md
Quentin 636057a620
All checks were successful
continuous-integration/drone/push Build is passing
Update Article “2023-04-06-un-registre-statique-docker-avec-garage”
2023-04-06 14:23:29 +00:00

1.9 KiB

layout title date status sitemap category description
post Un registre statique Docker avec Garage 2023-04-06T16:13:14.025+02:00 draft true developpement Héberger vos conteneurs Docker directement depuis Garage

Dans ce petite article, je vais vous montrer rapidement comment monter votre registre Docker avec Garage seulement. En effet, un registre Docker n'est rien d'autre qu'une spécification par dessus HTTP, et il apparait que Garage supporte pile poil le bon sous ensemble pour la distribution (c'est à dire le téléchargement). Reste à réaliser l'envoi à la main, et c'est ce que nous allons détailler ici ! Et pour faire les choses bien, on va prendre l'exemple d'une image multi-arch, qui est un poil plus complexe.

L'idée, c'est qu'à la fin de ce tuto, vous puissiez faire quelque chose comme ça, mais avec votre propre domaine !

docker run --rm -it quentin.dufour.io/garage:v0.8.2 /garage help

Déclarer un bucket comme registre

Rien de particulier ici, on va supposer que vous avez un bucket Garage déjà exposé comme site web. Dans ce billet, je vais utiliser directement le bucket de mon site web comme registre docker. Pour que ce dernier soit reconnu comme registre, il est de bon ton de renvoyer un petit OK sur le chemin /v2/ :

echo ok > /tmp/v2
aws s3 cp /tmp/v2 s3://quentin.dufour.io/v2/index.html

Récupérer une image depuis le Docker Hub

On va récupérer une image multi-arch de Garage depuis le Docker Hub pour se simplifier la vie dans un premier temps. Mais à la fin, on va build à la main notre image multi-arch depuis Nix, et sans jamais utiliser un daemon docker. Pratique !

Donc pour récupérer notre image multiarch, on va utiliser skopeo :

/mkdir -p /tmp
skopeo --insecure-policy copy \
  --all --format v2s2 --dest-compress \
  docker://docker.io/dxflrs/garage:v0.8.2 \
  dir:images/garage/multi