Update Article “2023-04-06-un-registre-statique-docker-avec-garage”
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
7fff9200af
commit
5925e13961
1 changed files with 55 additions and 6 deletions
|
@ -210,7 +210,7 @@ Maintenant on va reconstituer cette image dans notre registre à la main. On cop
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /tmp/garae-img-multi
|
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 \
|
manifest.json \
|
||||||
s3://quentin.dufour.io/v2/garage/manifests/v0.8.2
|
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
|
```text
|
||||||
$ sha256 manifest.json
|
$ sha256 manifest.json
|
||||||
SHA256 (manifest.json) = 91af689013dd80d2ef0f4ff75038bc738b3193a11e201530d6da0fa833f55cbb
|
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
|
```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
|
```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
|
## 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
|
## Construire l'image nous-même avec Nix
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue