Présentation des images d’application

Effectué

Une image conteneurisée est une partie essentielle de n’importe quelle application distribuée qui utilise Azure Kubernetes Service (AKS). Vous pouvez utiliser des balises pour :

  • Créer différentes images conteneur dont vous avez besoin.
  • Stocker vos images dans un registre de conteneurs.
  • Déployer une image avec des balises particulières.

Dans cette unité, vous découvrez comment votre pipeline CI/CD utilise des images d’application avec balises.

Images conteneur

Une image conteneur est un ensemble de logiciels exécutable qui encapsule une application et toutes ses dépendances logicielles. Ce module utilise une image conteneur Docker pour générer l’application de site web Contoso.

L’image Docker contient le code de l’application et toutes les dépendances nécessaires pour créer une image entièrement exécutable de l’application. L’image conteneur est configurée par un fichier Dockerfile qui contient un ensemble d’instructions pour le runtime de conteneur.

Si vous examinez le fichier Dockerfile à la racine de votre duplication (fork), vous constatez que l’image commence par utiliser une autre image Nginx comme base. Plutôt que de commencer à zéro, il est courant de commencer par d’autres images qui comportent les fichiers dont vous avez besoin.

Pour générer une image à partir d’un fichier Dockerfile, utilisez la commande docker build.

Important

La commande docker build ne fonctionne pas dans l’environnement Cloud Shell, car l’utilisation de Docker à l’intérieur d’un conteneur en cours d’exécution n’est pas autorisée. Si vous souhaitez tester la commande docker build ., clonez le référentiel localement et exécutez la commande à l’aide de votre propre installation de Docker.

Étiquettes d’image

Les étiquettes représentent un aspect important des images conteneur. Les balises peuvent vous indiquer le type d’image et faire la distinction entre plusieurs images portant le même nom.

Par exemple, si vous souhaitez que l’image Node.js dans un référentiel commence à partir de Node 12, vous pouvez inclure la balise FROM node:12 dans le fichier Dockerfile. Si en revanche vous voulez partir de la dernière version stable, vous pouvez utiliser l’étiquette FROM node:current. Les balises indiquent le type d’image et ce qu’elle doit faire.

La création d’une image conteneur utilise la même technique que la création d’un référentiel GitHub, et le chemin d’accès au conteneur Docker est généralement du type référentiel/nom-image. Toutefois, vous pouvez créer plusieurs versions de la même image qui utilisent des balises pour les distinguer.

Dans ce module, vous utilisez des balises pour étiqueter les versions de mise en production. Vous créez une balise pour chaque version de production à l’aide de règles de contrôle de version sémantiques v*.*.*, comme v1.0.0 pour la version 1.0.0. Chaque envoi (push) avec balise à la branche principale génère une nouvelle balise d’image avec le même nom que la balise de l’envoi (push). Les envois (push)sans balise génèrent uniquement la balise latest.

Tous les envois (push), avec et sans balise, mettent à jour l’image latest avec le code le plus récent et le déploient sur un environnement de préproduction. Les images avec la balise v* sont également déployées en production. Seules les images officielles avec balise sont déployées en production, tandis que les environnements de préproduction et de production ont toujours l’image intermédiaire latest.

Registres de conteneurs

Un aspect important de l’utilisation d’une image est son emplacement de stockage. Un registre de conteneurs est un emplacement où stocker des fichiers d’image conteneurisée. Par exemple, GitHub est un registre de conteneurs qui stocke également les modifications de code et les versions. Vous pouvez envoyer (push) de nouvelles images d’application dans des registres de conteneurs à l’aide de la commande docker push.

Dans ce module, vous stockez des fichiers image d’application dans l’instance Azure Container Registry que vous avez créée dans l’unité précédente. Après avoir créé un jeton d’accès personnel (PAT) et émis un certificat fédéré pour s’authentifier auprès de GitHub et Azure, le pipeline automatise essentiellement les commandes docker build et docker push.

Maintenant que vous comprenez les pipelines CI/CD et les images conteneur avec balise, passez à l’unité suivante pour commencer à créer votre pipeline CI/CD GitHub Actions.

Contrôle de vos connaissances

1.

Qu’est-ce qu’une image Docker ?

2.

Comment un pipeline CI/CD peut-il utiliser des balises d’image ?