0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Leçon

Envoi d’images vers des registres

Configurez des flux de travail pour envoyer vos images Docker créées vers des registres de conteneurs tels que Docker Hub ou GitHub Container Registry.

Envoi d’images vers des registres est une leçon CI/CD with GitHub Actions & DevOps Pipelines gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CI/CD with GitHub Actions & DevOps Pipelines, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Que sont les registres de conteneurs ?

Un registre de conteneurs est un service sécurisé de stockage en ligne pour vos images Docker. Considérez-le comme un espace de stockage spécialement conçu pour les paquets de votre application.

  • Ils stockent différentes versions de vos images.
  • Ils facilitent le partage des images avec d’autres personnes.
  • Ils sont indispensables au déploiement dans divers environnements.

Pourquoi utiliser des registres ?

Les registres sont essentiels au développement logiciel moderne. Ils offrent plusieurs avantages clés :

  • Partage d’images : Distribuez facilement les images de votre application.
  • Gestion des versions : Stockez et gérez différentes versions de votre application.
  • Déploiement fiable : Garantissez des déploiements cohérents dans tous les environnements.
  • Sécurité : De nombreux registres proposent une analyse des vulnérabilités.

Services de registre courants

De nombreux services de registre de conteneurs sont disponibles. Voici deux services populaires que vous rencontrerez souvent :

  • Docker Hub : Un registre public largement utilisé. Idéal pour partager des images publiques et pour les projets personnels.
  • Registre de conteneurs GitHub (GHCR) : Étroitement intégré aux dépôts GitHub. Excellent pour les images privées et les organisations qui utilisent déjà GitHub.

D’autres grands fournisseurs proposent également leurs propres registres, comme AWS ECR ou le registre de conteneurs Google.

Authentification auprès d’un registre

Avant de pouvoir envoyer une image vers un registre, vous devez prouver votre identité. Ce processus est appelé authentification, ou « connexion ».

Vous fournissez généralement un nom d’utilisateur et un jeton d’accès personnel (PAT) ou un mot de passe. Ces identifiants garantissent que seuls les utilisateurs autorisés peuvent envoyer ou récupérer des images depuis vos dépôts privés.

Utiliser docker/login-action

Dans GitHub Actions, la meilleure façon de vous authentifier auprès de la plupart des registres compatibles avec Docker consiste à utiliser docker/login-action.

Cette action connecte de manière sécurisée votre flux de travail au registre indiqué, ce qui permet aux étapes suivantes d’envoyer des images. Elle accepte username et password comme entrées.

Envoyer des images vers Docker Hub

Pour envoyer une image vers Docker Hub, votre flux de travail doit :

  1. Se connecter : Utiliser docker/login-action avec votre nom d’utilisateur Docker Hub et un jeton d’accès personnel (PAT) enregistré comme secret GitHub.
  2. Créer et envoyer : Utiliser docker/build-push-action pour créer votre image et définir push: true. Vérifiez que l’étiquette de votre image inclut votre nom d’utilisateur Docker Hub, par ex. your_username/my-app:latest.

Exemple de flux de travail Docker Hub

Voici un exemple de flux de travail GitHub Actions pour créer et envoyer une image Docker vers Docker Hub. N’oubliez pas de définir DOCKER_USERNAME et DOCKER_TOKEN comme secrets GitHub dans votre dépôt.

name: Publish Docker image to Docker Hub

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latest

Envoyer des images vers GHCR

Le registre de conteneurs GitHub (GHCR) offre une intégration transparente. Principales différences pour GHCR :

  • Authentification : Vous pouvez utiliser le GITHUB_TOKEN intégré pour l’authentification. Définissez username: ${{ github.actor }} et password: ${{ secrets.GITHUB_TOKEN }}.
  • Autorisations : Votre tâche doit disposer de l’autorisation packages: write.
  • Étiquetage des images : Les images reçoivent des étiquettes au format ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Exemple de flux de travail GHCR

Ce flux de travail montre comment envoyer une image vers le registre de conteneurs GitHub. Remarquez le bloc permissions et le format de l’étiquette de l’image.

name: Publish Docker image to GHCR

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write # Required for GHCR

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:latest

Vérifiez votre compréhension

Passons rapidement en revue ce que vous avez appris sur l'envoi d'images vers des registres de conteneurs.

Récapitulatif : envoyez vos images !

Excellent travail ! Vous avez appris à envoyer des images Docker vers des registres de conteneurs à l'aide de GitHub Actions.

  • Les registres de conteneurs stockent et gèrent vos images Docker.
  • L'authentification est une première étape essentielle qui utilise des identifiants.
  • docker/login-action vous aide à vous connecter de manière sécurisée.
  • Vous avez vu des exemples pour Docker Hub et GitHub Container Registry, et compris leurs exigences spécifiques en matière d'authentification et d'étiquetage.

Vous allez maintenant apprendre à déployer ces images sur Kubernetes !

Questions Fréquemment Posées

La leçon « Envoi d’images vers des registres » est-elle gratuite ?

Oui — le texte complet de « Envoi d’images vers des registres » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CI/CD with GitHub Actions & DevOps Pipelines, passe à CoddyKit PRO. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Envoi d’images vers des registres » ?

Configurez des flux de travail pour envoyer vos images Docker créées vers des registres de conteneurs tels que Docker Hub ou GitHub Container Registry. Tu pratiques CI/CD with GitHub Actions & DevOps Pipelines avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer CI/CD with GitHub Actions & DevOps Pipelines ?

Aucune expérience préalable n'est requise. CI/CD with GitHub Actions & DevOps Pipelines sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Envoi d’images vers des registres » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon CI/CD with GitHub Actions & DevOps Pipelines ?

Oui. Chaque leçon CI/CD with GitHub Actions & DevOps Pipelines inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Création d’images Docker avec Actions
  2. Envoi d’images vers des registres
  3. Déploiement sur Kubernetes avec Actions
  4. Charts Helm et manifestes Kubernetes en intégration et déploiement continus
← Retour à CI/CD with GitHub Actions & DevOps Pipelines