Tester, créer et pousser des images Docker vers GitHub Container Registry à l'aide d'actions GitHub

Que préparer

configuration de base

Créer un jeton pour les actions Github

Créer un PAT à partir des paramètres Github, emplacement:

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

Autorisation: Cochez write: packages`` read: packages

Enregistrer le jeton

Cliquez sur New Secrets dans Settings-> Secrets dans le référentiel:

Créer des actions Github

Créer un workflow

docker-publish.yml


name: Docker

on:
  push:
    # `master`Branche`latest`Construire comme
    branches:
      - master

    #version`v1.2.3`Construire avec le tag publié
    tags:
      - v*

  #Tester s'il y a PR
  pull_request:

env:
  # TODO:Le nom de l'image Docker
  IMAGE_NAME: author/xxxx

jobs:
  #tester
  #Commentaire: 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
  #Pousser l'image Docker vers les packages GitHub
  #Commentaire: https://docs.docker.com/docker-hub/builds/
  push:
    #Vérifiez le test
    needs: test

    runs-on: ubuntu-latest
    #Courir quand pas 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
      #Je l'ai défini sur Secrets ici`CR_PAT`Utilisation de ghcr.Connectez-vous à io
        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
          #Rendre le nom de l'image Docker définie plus bas
          IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
          #Traitement des caractères de version
          VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
          #De la balise"v"Retirer
          [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
          #Si la branche principale`latest`Marque
          [ "$VERSION" == "master" ] && VERSION=latest
          echo IMAGE_ID=$IMAGE_ID
          echo VERSION=$VERSION
          docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
          docker push $IMAGE_ID:$VERSION

Si vous validez ce fichier, il devrait s'exécuter automatiquement une fois, le journal sera visible sous Actions dans le référentiel. Cette action prend également en charge docker-compose.

L'application réelle est Veuillez vous référer au référentiel OVaaS Front-End en cours de développement: https://github.com/OVaaS/ovaas-front

le terme

Recommended Posts

Tester, créer et pousser des images Docker vers GitHub Container Registry à l'aide d'actions GitHub
Flux de travail minimal pour pousser l'image Docker vers Github Container Registry avec des actions Github
Étapes pour pousser une image Docker vers GitHub Container Registry (ghcr.io)
Transférer une image Docker des actions GitHub vers GitHub Container Registry
Docker push vers GitHub Container Registry (ghcr.io)
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
Poussez l'image vers le hub docker à l'aide de Jib
Poussez l'image Docker distribuée par Docker Hub vers Google Container Registry et démarrez la VM en fonction de cette image
[Notes personnelles] Comment pousser une image Docker vers des packages GitHub
2. Créez une image Docker et enregistrez le registre
Comment créer CloudStack à l'aide de Docker
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
Publier l'image Docker dans le registre de packages GitHub
Migrer les images Dockerhub vers Github Container Registry
Activer le cache de construction de Docker dans GitHub Action et déployer sur Amazon ECS
Créez un projet Maven à la hâte à l'aide du conteneur Docker de Maven
La construction du conteneur Docker ne parvient pas à installer php-radis
Comment donner votre image à quelqu'un avec Docker
J'ai essayé d'utiliser Wercker pour créer et publier une image Docker qui lance GlassFish 5
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
[Road_node.js_1-1] La voie de la création de l'environnement Node.js Express MySQL à l'aide de Docker
Essayez de créer un environnement de développement Java à l'aide de Docker
Comment tester avec des images lors de l'utilisation d'ActiveStorage et de Faker
[Docker] Créez un site avec Hugo et publiez-le sur GitHub
Enregistrez votre propre image Docker dans ECR à l'aide de l'AWS CLI
J'ai essayé de construire l'environnement petit à petit en utilisant docker
Premiers pas avec Git Hub Container Registry au lieu de Docker Hub
Transformez facilement les applications Java en conteneurs Docker avec Jib ~ Construisez avec gradle et enregistrez-vous dans le référentiel local