Update Article “2023-04-06-un-registre-statique-docker-avec-garage”
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Quentin 2023-04-06 15:31:49 +00:00
parent 7fff9200af
commit 5925e13961

View file

@ -210,7 +210,7 @@ Maintenant on va reconstituer cette image dans notre registre à la main. On cop
```bash
cd /tmp/garae-img-multi
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
aws s3 cp --content-type application/vnd.docker.distribution.manifest.list.v2+json \
manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/v0.8.2
```
@ -220,24 +220,73 @@ Il faut aussi que le manifest soit accessible depuis son hash sha256, pour ça i
```text
$ sha256 manifest.json
SHA256 (manifest.json) = 91af689013dd80d2ef0f4ff75038bc738b3193a11e201530d6da0fa833f55cbb
$ aws s3 cp --content-type application/vnd.docker.distribution.manifest.list.v2+json \
manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/sha256:91af689013dd80d2ef0f4ff75038bc738b3193a11e201530d6da0fa833f55cbb
```
Ensuite on copie les manifestes des images des différentes architectures (ici `linux/arm`, `linux/arm64`, `linux/amd64, et linux/386` :
Ensuite on copie les manifestes des images des différentes architectures (ici `linux/arm`, `linux/arm64`, `linux/amd64, et linux/386`) :
```bash
undefined
# manifest arm
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
12ec13fe92959249c52c46e97754333267ceeea22978434737978a135b7185ce.manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/sha256:12ec13fe92959249c52c46e97754333267ceeea22978434737978a135b7185ce
# manifest arm64
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
236604ea7a441f907d52129d9490fe96b64ef2efd8d4b1c1c50ef8dbae361a8e.manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/sha256:236604ea7a441f907d52129d9490fe96b64ef2efd8d4b1c1c50ef8dbae361a8e
# manifest 386
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
47df19e0c6333356e503258e6301c3a91848644667a0b7de4162e6841e89769a.manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/sha256:47df19e0c6333356e503258e6301c3a91848644667a0b7de4162e6841e89769a
# manifest amd64
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json \
73a20980fd232dc7acd51d21df6c7c9964bc7c5fbcfdc098b95cfd221bf67bf6.manifest.json \
s3://quentin.dufour.io/v2/garage/manifests/sha256:73a20980fd232dc7acd51d21df6c7c9964bc7c5fbcfdc098b95cfd221bf67bf6
```
Enfin, on copie les blobs, qui contiennent par exemple les layers de chaque images :
Enfin, on copie les blobs, qui contiennent par exemple les layers de chaque images. Plutôt que de copier à la main, cette fois-ci je fais une boucle :
```bash
undefined
for i in $(ls | grep -P '^[a-f0-9]+$'); do
aws s3 cp $i "s3://quentin.dufour.io/v2/garage/blobs/sha256:$i"
done
```
aa
Et voilà !
## Tester notre registre
On peut d'abord essayer avec skopeo la même commande qu'on a exécuté sur le Docker Hub pour dump toutes nos images :
```bash
skopeo --insecure-policy copy \
--all --format v2s2 --dest-compress
docker://quentin.dufour.io/garage:v0.8.2
dir:/tmp/garage-s3-registry
```
Et puis, plus simplement, avec Docker directement :
```bash
docker pull quentin.dufour.io/garage:v0.8.2
```
Et pourquoi pas tenter même de lancer notre conteneur ?
```bash
$ sudo docker run --rm -it quentin.dufour.io/garage:v0.8.2 /garage help
garage v0.8.2 [features: k2v, sled, lmdb, sqlite, consul-discovery, kubernetes-discovery, metrics, telemetry-otlp, bundled-libs]
S3-compatible object store for self-hosted geo-distributed deployments
...
```
Nous y voilà : nous savons créer un registre Docker statique ! Et maintenant, pourquoi ne pas construire nos images directement avec Nix ?
## Construire l'image nous-même avec Nix