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.ioAngebenWenn 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 buildGeben Sie dabei den Pfad oder die URL anactions/checkoutBei 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 ./DockerfileWirdDieser Parameter wird diesmal nicht verwendet, wird jedoch verwendet, wenn auf eine andere Docker-Datei als direkt unter dem Stammverweis verwiesen wird.  | 
Recommended Posts