GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment configurer des builds automatiques pour les images Docker sur GitHub

GitHub a une fonctionnalité appelée GitHub Actions qui exécute des builds automatiques, des tests et d'autres scripts chaque fois que vous apportez des modifications à un référentiel. Un cas d'utilisation pratique consiste à créer et à transférer automatiquement des conteneurs Docker vers un registre de conteneurs.

Nouveau registre de conteneurs de GitHub

Le nouveau registre de conteneurs de GitHub, appelé GitHub Container Registry, est un peu différent de la plupart des registres comme Docker Hub. Il fonctionne comme une extension de GitHub Packages, un système de stockage de packages qui associe les packages à leurs référentiels de code source. Les packages peuvent être créés et poussés à partir du référentiel, souvent automatiquement à l'aide d'un pipeline GitHub Actions.

GitHub Container Registry ajoute simplement une compatibilité spécifique à Docker aux packages GitHub, ce qui le fait fonctionner comme un registre de conteneurs à des fins d'exécution de docker pull et d'autres commandes CLI.

Vous n'avez pas besoin de publier sur le registre de conteneurs de GitHub. Vous pouvez toujours publier sur Docker Hub à partir d'une action avec une certaine configuration. Les actions prédéfinies fonctionnent avec GHCR dès le départ, donc c'est beaucoup plus simple à configurer.

Comment configurer des builds automatiques pour les packages GitHub

Pour commencer, vous aurez besoin d'un référentiel. Même si vous ne publiez que des packages, vous aurez toujours besoin d'un référentiel, car le format de GHCR est le suivant :

ghcr.io/username/repository/image:version

Configurez un référentiel, puis cliquez sur "Actions" pour créer une nouvelle action. Sous "Plus de workflows d'intégration continue", cliquez sur "Publier le conteneur Docker".

Cela génère un modèle de démarrage, qui nécessite quelques modifications pour fonctionner. Tout d'abord, le IMAGE_NAME la variable doit être remplacée par le nom de votre image.

Ensuite, à la ligne 39, vous trouverez où il se connecte à GHCR.

run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin

Actuellement, le seul schéma d'authentification pris en charge est les jetons d'accès personnels (PAT), ce qui n'est pas idéal pour la sécurité car ils accordent un accès à l'ensemble du compte. GitHub le sait et travaille sur un meilleur correctif pour l'avenir, mais en attendant, si vous souhaitez utiliser GHCR à partir d'un flux de travail GitHub Actions, vous devrez stocker un PAT dans les secrets de votre référentiel, car il suffit évidemment de coller ce serait horrible ici.

Tout d'abord, vous devrez vous rendre dans Paramètres> Paramètres du développeur> Jetons d'accès personnels et créer un nouveau jeton. Ce jeton a besoin de write:packages et delete:packages réglages. Notez que pour une raison quelconque, la sélection de packages d'écriture sélectionne automatiquement "Contrôle total des référentiels", que vous devez décocher.

Ensuite, rendez-vous dans les paramètres du référentiel et créez un nouveau secret appelé CR_PAT , pour correspondre à l'action.

Revenez à l'action et cliquez sur "Démarrer la validation" pour la pousser vers le référentiel.

Une fois validé, il déclenchera un flux de travail pour exécuter et créer le package. Vous pouvez surveiller l'état de tous les workflows en cours d'exécution sous l'onglet "Actions". Ici, cela a échoué car les actions par défaut s'attendent à ce qu'il y ait des tests à exécuter, ce que cette image n'avait pas.

Une fois l'opération réussie, vous devriez voir le conteneur dans le registre, sous "Packages" sur la page principale du référentiel ou sous les packages de votre profil.


Docker
  1. Comment déplacer des images Docker entre les hôtes

  2. Comment rechercher, extraire, répertorier et supprimer des images Docker sous Linux

  3. Comment partager des images Docker avec d'autres

  4. Comment modifier les images Docker

  5. Comment configurer Docker dans le système Windows pour Linux (WSL2) sur Windows 10

Comment mettre à jour les images Docker vers la dernière version

Comment configurer Pihole dans un conteneur Docker

Comment configurer un conteneur Apache Docker

Comment configurer Docker dans WSL [étape par étape]

Comment vérifier l'utilisation de l'espace disque pour les images Docker, les conteneurs et les volumes

Guide complet pour supprimer les images Docker