Construire une image avec une pièce jointe
Dans cette étape, nous allons apprendre à construire une image Docker et y attacher des métadonnées. Les pièces jointes permettent d'inclure des informations supplémentaires avec votre image, telles que la provenance du build, la liste des composants logiciels (SBOM - Software Bill of Materials) ou d'autres données pertinentes.
Commencez par créer un Dockerfile simple. Naviguez vers le répertoire ~/project
si vous n'y êtes pas déjà.
cd ~/project
Maintenant, créez un fichier nommé Dockerfile
en utilisant l'éditeur nano
.
nano Dockerfile
Ajoutez le contenu suivant au Dockerfile
:
FROM alpine:latest
CMD ["echo", "Hello, Docker Attachments!"]
Ce Dockerfile est très simple. Il utilise l'image alpine:latest
comme base et définit une commande pour afficher un message lorsque le conteneur démarre.
Enregistrez le fichier et quittez nano
(Appuyez sur Ctrl + X
, puis Y
, puis Entrée
).
Ensuite, nous devons créer un fichier que nous attacherons à l'image. Créons un simple fichier texte nommé attachment.txt
.
nano attachment.txt
Ajoutez du contenu à attachment.txt
, par exemple :
This is an example attachment for the Docker image.
It can contain any relevant metadata.
Enregistrez le fichier et quittez nano
.
Maintenant, nous allons construire l'image Docker et attacher le fichier attachment.txt
. Nous utiliserons la commande docker build
avec le flag --attest
. Le flag --attest
permet de spécifier une pièce jointe à inclure avec le build de l'image. Le format est type=type,dest=destination,src=source
.
Dans notre cas, nous utiliserons type=sbom
(Software Bill of Materials) comme type, dest=/sbom/attachment.txt
comme chemin de destination dans la pièce jointe, et src=attachment.txt
comme fichier source sur notre système de fichiers local. Nous taguerons également l'image comme my-attached-image:latest
.
Avant de construire, assurez-vous d'avoir le plugin buildx nécessaire installé. Si ce n'est pas le cas, vous devrez peut-être l'installer. Cependant, pour les pièces jointes basiques, le builder intégré devrait suffire.
Construisons l'image :
docker build -t my-attached-image:latest --attest type=sbom,dest=/sbom/attachment.txt,src=attachment.txt .
Le .
à la fin de la commande spécifie le contexte de build, qui est le répertoire courant (~/project
).
Vous devriez voir une sortie indiquant que l'image est en cours de construction et que la pièce jointe est traitée.
Une fois le build terminé, vous pouvez vérifier que l'image a été créée en listant vos images locales.
docker images
Vous devriez voir my-attached-image
dans la liste.