Offiziell gibt es einen Workflow als Starter-Workflows vom Erstellen eines Docker-Images bis zum Verschieben in die Github-Container-Registrierung. Da ich es jedoch ohne Aktionen schlammig mache, werde ich die Workflow-Konfiguration mithilfe von Aktionen in diesem Artikel erläutern. Ich werde es beschreiben.
Für die diesmal behandelte Dateistruktur des Repositorys wird angenommen, dass die Docker-Datei direkt unter dem Stammverzeichnis vorhanden ist.
--
|-- 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
Dieser Workflow definiert einen Job namens "build_and_push". Von nun an werde ich kurz erklären, was jeder Schritt im Job tut.
checkout Überprüfen Sie den Quellcode. Wir verwenden die Aktion "action / checkout @ v2".
Set up Docker Buildx Die Aktion "Docker / Build-Push-Aktion @ v2" führt hier das erforderliche Setup für "Docker-Build" durch. Wir verwenden die Aktion "docker / setup-buildx-action @ v1".
Login to GitHub Container Registry
Führen Sie hier ein Docker-Login durch, um das Docker-Image in die GitHub-Container-Registrierung zu verschieben.
Verwenden Sie die Aktion "Docker / Login-Aktion @ v1".
Definieren Sie die gewünschten Parameter mit with
.
Parameter | Wert |
---|---|
registry | Geben Sie die Docker-Registrierung an Dieses Mal werde ich auf Github Container Registry pushen ghcr.io AngebenWenn nicht angegeben, handelt es sich um Docker Hub |
username | Geben Sie den Benutzer an, der in die Docker-Registrierung übertragen werden soll Geben Sie diesmal den Namen des Repository-Eigentümers in der Umgebungsvariablen * 1 an |
password | Geben Sie das Kennwort oder das persönliche Zugriffstoken an, das an die Docker-Registrierung gesendet werden soll Diesmal CF in Geheimnissen_Geben Sie das Personal Access Token an, das unter dem Namen PAT * 2 gespeichert ist |
1: Github Actions bietet standardmäßig einige Umgebungsvariablen, und diesmal habe ich sie von ihnen erhalten. Referenz: Umgebungsvariablen - GitHub Docs
2: Hier erfahren Sie, wie Sie das Geheimnis festlegen. Encrypted secrets - GitHub Docs
Build and push
Mach "Docker Build" und "Docker Push".
Wir verwenden die Aktion "Docker / Build-Push-Aktion @ v2".
Definieren Sie die gewünschten Parameter mit with
.
Parameter | Wert |
---|---|
context | docker build Geben Sie dabei den Pfad oder die URL anactions/checkout Bei Verwendung der Aktion kann der Pfad angegeben werdenGeben Sie diesmal den Untergebenen der ausgecheckten Route an Wenn nicht angegeben, handelt es sich um einen Git-Kontext |
push | Geben Sie true an, wenn Sie in die Docker-Registrierung wechseln |
tags | Geben Sie das Tag an, das an das zu erstellende Image angehängt werden soll Es können mehrere Tags angegeben werden Diesmal spätestens und 1.0.0 Tag hinzufügen |
file | Geben Sie den Dockerfile-Pfad an, auf den verwiesen werden soll Wenn nicht angegeben ./Dockerfile WirdDieser Parameter wird diesmal nicht verwendet, wird jedoch verwendet, wenn auf eine andere Docker-Datei als direkt unter dem Stammverweis verwiesen wird. |
Recommended Posts