forked from quentin/quentin.dufour.io
Update Article “2023-04-06-un-registre-statique-docker-avec-garage”
This commit is contained in:
parent
4e2099063d
commit
878cd8c305
1 changed files with 44 additions and 1 deletions
|
@ -2,7 +2,7 @@
|
||||||
layout: post
|
layout: post
|
||||||
title: Un registre statique Docker avec Garage
|
title: Un registre statique Docker avec Garage
|
||||||
date: 2023-04-06T16:13:14.025+02:00
|
date: 2023-04-06T16:13:14.025+02:00
|
||||||
status: draft
|
status: published
|
||||||
sitemap: true
|
sitemap: true
|
||||||
category: developpement
|
category: developpement
|
||||||
description: Héberger vos conteneurs Docker directement depuis Garage
|
description: Héberger vos conteneurs Docker directement depuis Garage
|
||||||
|
@ -288,3 +288,46 @@ 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 ?
|
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
|
||||||
|
|
||||||
|
On va utiliser `pkgs.dockerTools.buildImage` pour générer une archive docker qui va ressembler à ça :
|
||||||
|
|
||||||
|
```
|
||||||
|
$ tar -tvf result
|
||||||
|
dr-xr-xr-x root/root 0 1980-01-01 01:00 ./
|
||||||
|
dr-xr-xr-x root/root 0 1980-01-01 01:00 4bc17b9fc1404e9543364c02ec354faee7ca6e004dc829994a61fd42935e00aa/
|
||||||
|
-r--r--r-- root/root 3 1980-01-01 01:00 4bc17b9fc1404e9543364c02ec354faee7ca6e004dc829994a61fd42935e00aa/VERSION
|
||||||
|
-r--r--r-- root/root 396 1980-01-01 01:00 4bc17b9fc1404e9543364c02ec354faee7ca6e004dc829994a61fd42935e00aa/json
|
||||||
|
-r--r--r-- root/root 9932800 1980-01-01 01:00 4bc17b9fc1404e9543364c02ec354faee7ca6e004dc829994a61fd42935e00aa/layer.tar
|
||||||
|
-r--r--r-- root/root 447 1980-01-01 01:00 e9eaf28bc5306e0390c8e3d7ec7f072933c67a5e5dadcd4b4e699cdcbee20d00.json
|
||||||
|
-r--r--r-- root/root 286 1980-01-01 01:00 manifest.json
|
||||||
|
-r--r--r-- root/root 135 1980-01-01 01:00 repositories
|
||||||
|
```
|
||||||
|
|
||||||
|
De cette archive, on va pas se casser la tête dans un premier temps, on va simplement demander à skopeo de nous la convertir dans le format que l'on connait :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
skopeo --insecure-policy copy docker-archive:result dir:/tmp/albatros-img
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensuite on va la copier simplement comme vu précédemment :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sha256sum manifest.json # 840b4265d58d0358a3c4183ba0e39e7bb4c3dfb78a50cac7532476ab25666def
|
||||||
|
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json manifest.json s3://quentin.dufour.io/v2/albatros/manifests/sha256:840b4265d58d0358a3c4183ba0e39e7bb4c3dfb78a50cac7532476ab25666def
|
||||||
|
aws s3 cp --content-type application/vnd.docker.distribution.manifest.v2+json manifest.json s3://quentin.dufour.io/v2/albatros/manifests/v0.9
|
||||||
|
aws s3 cp ./83695be784e20268eafd08d35b47f50d689d831ae4a047750a4ed2c0a29debc7 s3://quentin.dufour.io/v2/albatros/blobs/sha256:83695be784e20268eafd08d35b47f50d689d831ae4a047750a4ed2c0a29debc7
|
||||||
|
aws s3 cp ./e9eaf28bc5306e0390c8e3d7ec7f072933c67a5e5dadcd4b4e699cdcbee20d00 s3://quentin.dufour.io/v2/albatros/blobs/sha256:e9eaf28bc5306e0390c8e3d7ec7f072933c67a5e5dadcd4b4e699cdcbee20d00
|
||||||
|
```
|
||||||
|
|
||||||
|
Et voilà, on peut lancer notre binaire maintenant :
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker run --rm -it quentin.dufour.io/albatros:v0.9
|
||||||
|
Unable to find image 'quentin.dufour.io/albatros:v0.9' locally
|
||||||
|
v0.9: Pulling from albatros
|
||||||
|
Digest: sha256:840b4265d58d0358a3c4183ba0e39e7bb4c3dfb78a50cac7532476ab25666def
|
||||||
|
Status: Downloaded newer image for quentin.dufour.io/albatros:v0.9
|
||||||
|
2023/04/06 16:31:42 unable to parse config, error: env: required environment variable "ALBATROS_URL" is not set
|
||||||
|
```
|
||||||
|
|
||||||
|
Alors là on a envoyé une image simple et non une image multi-arch, mais c'est tout à fait possible à faire, l'exercice est laissé à la lectrice ou au lecture que vous êtes pour le moment. Bonne chance !
|
||||||
|
|
Loading…
Reference in a new issue