Flux de travail minimal pour pousser l'image Docker vers Github Container Registry avec des actions Github

Officiellement, il existe un flux de travail en tant que flux de travail de démarrage allant de la création d'une image Docker à sa transmission vers Github Container Registry, mais comme il est trouble sans utiliser d'actions, la configuration du flux de travail à l'aide d'actions est décrite dans cet article. Je vais le décrire.

supposition

Quant à la structure des fichiers du référentiel manipulée cette fois, on suppose que le Dockerfile existe directement sous la racine.

-- 
|-- Dockerfile
|-- README.md
|-- .github
    |-- workflows
        |-- actions.yml
...

Solution

yml:.github/workflows/action.yml


name: Build and Publish Docker

on:
  push:
    branches:
      - master

jobs:
  build_and_push:
    runs-on: ubuntu-latest
    env:
      IMAGE_NAME: sample-app
    steps:
      - name: checkout
        uses: actions/checkout@v2

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.CR_PAT }}

      - name: Build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          push: true
          tags: |
            ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest
            ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:1.0.0

Explication du flux de travail

Ce workflow définit un travail appelé build_and_push. À partir de maintenant, je vais expliquer brièvement ce que fait chaque étape du travail.

checkout Consultez le code source. ʻActions / checkout @ v2` Les actions sont utilisées.

Set up Docker Buildx L'action docker / build-push-action @ v2 effectue ici la configuration nécessaire pour docker build. Nous utilisons l'action docker / setup-buildx-action @ v1.

Login to GitHub Container Registry Faites une connexion docker ici pour pousser l'image docker vers le registre de conteneurs GitHub. Utilisez l'action docker / login-action @ v1. Définissez les paramètres requis avec with.

Paramètres valeur
registry Spécifiez le registre Docker
Cette fois, je vais pousser vers Github Container Registryghcr.ioSpécifier
Si non spécifié, ce sera Docker Hub
username Spécifiez l'utilisateur à pousser vers le registre Docker
Cette fois, spécifiez le nom du propriétaire du référentiel à partir de la variable d'environnement * 1
password Spécifiez le mot de passe ou le jeton d'accès personnel à pousser dans le registre Docker
Cette fois CF dans les secrets_Spécifiez le jeton d'accès personnel stocké sous le nom PAT * 2

Build and push Faites docker build et docker push. Nous utilisons l'action docker / build-push-action @ v2. Définissez les paramètres requis avec with.

Paramètres valeur
context docker buildSpécifiez le chemin ou l'URL lorsque vous faites
actions/checkoutLe chemin peut être spécifié lors de l'utilisation de l'action
Cette fois, spécifiez le subordonné de l'itinéraire emprunté
S'il n'est pas spécifié, ce sera le contexte Git
push Spécifiez true lors du transfert vers le registre Docker
tags Spécifiez la balise à attacher à l'image à construire
Plusieurs balises peuvent être spécifiées
Cette fois au plus tard et 1.0.Ajouter 0 balise
file Spécifiez le chemin Dockerfile auquel faire référence
Si non spécifié./DockerfileDevient
Ce paramètre n'est pas utilisé cette fois, mais il est utilisé lors du référencement d'un Dockerfile autre que directement sous la racine.

référence

Recommended Posts

Flux de travail minimal pour pousser l'image Docker vers Github Container Registry avec des actions Github
Étapes pour pousser une image Docker vers GitHub Container Registry (ghcr.io)
Transférer une image Docker des actions GitHub vers GitHub Container Registry
Tester, créer et pousser des images Docker vers GitHub Container Registry à l'aide d'actions GitHub
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
[Notes personnelles] Comment pousser une image Docker vers des packages GitHub
Premiers pas avec Git Hub Container Registry au lieu de Docker Hub
Publier l'image Docker dans le registre de packages GitHub
Migrer les images Dockerhub vers Github Container Registry
Poussez l'image Docker distribuée par Docker Hub vers Google Container Registry et démarrez la VM en fonction de cette image
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
Paramètre pour quitter le conteneur Docker avec VScode
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Poussez l'image vers le hub docker à l'aide de Jib
Comment pousser une application développée avec Rails vers Github
Je veux pousser une application créée avec Rails 6 vers GitHub
Introduction à Linux Container / Docker (Partie 1)
Migrer l'image Docker vers un autre serveur
Introduction à Linux Container / Docker (Partie 2)
2. Créez une image Docker et enregistrez le registre
Redémarrez Apache avec l'image php-apache de Docker
[Linux] Démarrer le conteneur Apache avec Docker
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Comment démarrer Camunda avec Docker
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
Créez une image de conteneur pour l'arm64 de Kibana et enregistrez-la dans le registre de conteneurs GitHub. Démarrez Elastic Stack avec Docker Compose sur Raspberry Pi 4 (64 bits)