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.
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
...
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
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 Registry ghcr.ioSpécifierSi 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  | 
1: Github Actions fournit certaines variables d'environnement par défaut, et cette fois je les ai obtenues. Référence: Environment variables --GitHub Docs
2: Voir ici pour savoir comment définir le secret. Encrypted secrets - GitHub Docs
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 faitesactions/checkoutLe chemin peut être spécifié lors de l'utilisation de l'actionCette 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é ./DockerfileDevientCe 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.  | 
Recommended Posts