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.io Spé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 build Spécifiez le chemin ou l'URL lorsque vous faitesactions/checkout Le 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é ./Dockerfile DevientCe 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