Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung

Was vorzubereiten?

Grundlegende Konfiguration

Erstellen eines Tokens für Github-Aktionen

PAT aus Github-Einstellungen erstellen, Speicherort:

Github -> Settings -> Developer settings -> Personal access tokens

Berechtigung: Aktivieren Sie "Schreiben: Pakete", "Lesen: Pakete"

Token speichern

Klicken Sie im Repository unter "Einstellungen-> Geheimnisse" auf "Neue Geheimnisse":

Erstellen von Github-Aktionen

Workflow erstellen

docker-publish.yml


name: Docker

on:
  push:
    # `master`Ast`latest`Bauen als
    branches:
      - master

    #Ausführung`v1.2.3`Mit freigegebenem Tag erstellen
    tags:
      - v*

  #Testen Sie, ob PR vorhanden ist
  pull_request:

env:
  # TODO:Der Name des Docker-Images
  IMAGE_NAME: author/xxxx

jobs:
  #Prüfung
  #Kommentar: https://docs.docker.com/docker-hub/builds/automated-testing/
  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run tests
        run: |
          if [ -f docker-compose.test.yml ]; then
            docker-compose --file docker-compose.test.yml build
            docker-compose --file docker-compose.test.yml run sut
          else
            docker build . --file Dockerfile
          fi
  #Schieben Sie das Docker-Image auf GitHub-Pakete
  #Kommentar: https://docs.docker.com/docker-hub/builds/
  push:
    #Überprüfen Sie den Test
    needs: test

    runs-on: ubuntu-latest
    #Ausführen, wenn nicht PR
    if: github.event_name == 'push'

    steps:
      - uses: actions/checkout@v2

      - name: Build image
        run: docker build . --file Dockerfile --tag $IMAGE_NAME

      - name: Log into GitHub Container Registry
      #Ich habe es hier auf Secrets gesetzt`CR_PAT`Mit ghcr.Melden Sie sich bei io an
        run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin

      - name: Push image to GitHub Container Registry
        run: |
          IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
          #Machen Sie den Namen des eingestellten Docker-Bildes niedriger
          IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
          #Versionszeichen verarbeiten
          VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
          #Aus dem Tag"v"Entfernen
          [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
          #Wenn der Hauptzweig`latest`Etikett
          [ "$VERSION" == "master" ] && VERSION=latest
          echo IMAGE_ID=$IMAGE_ID
          echo VERSION=$VERSION
          docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
          docker push $IMAGE_ID:$VERSION

Wenn Sie diese Datei festschreiben, sollte sie automatisch einmal ausgeführt werden. Das Protokoll wird unter Aktionen im Repository angezeigt. Diese Aktion unterstützt auch Docker-Compose.

Die eigentliche Anwendung ist Weitere Informationen finden Sie im OVaaS-Front-End-Repository, das derzeit entwickelt wird: https://github.com/OVaaS/ovaas-front

der Begriff

Recommended Posts

Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung
Minimaler Workflow zum Verschieben des Docker-Images in die Github-Container-Registrierung mit Github-Aktionen
Schritte zum Verschieben eines Docker-Images in die GitHub Container Registry (ghcr.io)
Übertragen Sie ein Docker-Image von GitHub Actions in die GitHub Container Registry
Docker Push zur GitHub Container Registry (ghcr.io)
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
Schieben Sie das Image mit Jib zum Docker-Hub
Übertragen Sie das von Docker Hub verteilte Docker-Image in die Google Container-Registrierung und starten Sie die VM basierend auf diesem Image
[Persönliche Notizen] So verschieben Sie ein Docker-Image in GitHub-Pakete
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
So erstellen Sie CloudStack mit Docker
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
Veröffentlichen Sie das Docker-Image in der GitHub-Paketregistrierung
Migrieren Sie Dockerhub-Images in die Github Container Registry
Aktivieren Sie den Build-Cache von Docker in GitHub Action und stellen Sie ihn auf Amazon ECS bereit
Erstellen Sie in Eile ein Maven-Projekt mit dem Docker-Container von Maven
Docker Container Build kann PHP-Radis nicht installieren
So geben Sie jemandem Ihr Image mit Docker
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
[Docker] Wie man mit einem Container in Heroku aktualisiert und wie man mit Migrate Error umgeht
[Road_node.js_1-1] Der Weg zum Erstellen der Node.js Express MySQL-Umgebung mit Docker
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Testen des Einschlusses von Bildern bei Verwendung von ActiveStorage und Faker
[Docker] Erstellen Sie eine Site mit Hugo und veröffentlichen Sie sie auf GitHub
Registrieren Sie Ihr eigenes Docker-Image in ECR mithilfe der AWS CLI
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Erste Schritte mit der Git Hub Container Registry anstelle von Docker Hub
Verwandeln Sie Java-Apps mit Jib ~ Build with gradle ganz einfach in Docker-Container und registrieren Sie sich im lokalen Repository