[DOCKER] [Golang] Créer une image de menu fixe avec des actions Github

Contenu

Créez une image Docker de l'application créée avec Golang et transférez-la dans le registre Docker. Cliquez ici pour le Dockerfile de l'application Golang (https://qiita.com/Yuuki557/items/3d088de91ab86bc71600)

table des matières

--Fichier de workflow

Fichier de workflow

ci.yaml


name: CI
on:
  push:
    tags:
      - "v*.*.*"

jobs:
  test:
    runs-on: ubuntu-18.04
    strategy:
      matrix:
        go: ["1.15"]
    steps:
      - name: Check out source code
        uses: actions/checkout@v1
        
      - name: Set up Go v${{matrix.go}}
        uses: actions/setup-go@v2
        with:
          go-version: ${{matrix.go}}

      - name: Install dependent packages
        run: go mod download

      - name: Run all test
        run: go test -v ./...

  docker-build:
    needs: ["test"]
    runs-on: ubuntu-18.04
    env:
      DOCKER_IMAGE_NAME: docker-app
    steps:
      - name: Check out source code
        uses: actions/checkout@v1

      - name: Build and push docker image
        run: |
          TAG=$(echo $GITHUB_REF | grep -o "[0-9][\.].*")
          DOCKER_IMAGE=${{ secrets.DOCKER_REGISTRY }}/${DOCKER_IMAGE_NAME}:$TAG
          echo "Docker image: ${DOCKER_IMAGE}"
          docker login --username ${{ secrets.DOCKER_USERNAME }} --password ${{ secrets.DOCKER_PASSWORD }}
          docker build -t $DOCKER_IMAGE .
          docker push $DOCKER_IMAGE

Capture de contenu

Workflow Triggers-on.push.tags

Il est déclenché par un push sous forme de tag v1.0.0. Il existe de nombreux déclencheurs en plus de push.

Tester --jobs.test

Le contenu suivant est fait dans l'ordre

  1. Vérifiez le code source
  2. Spécifiez la version de Golang (spécifiez 1.15 cette fois)
  3. Installez les packages dépendants selon * go modules * (go mod download)
  4. Exécutez tous les tests dans le répertoire de travail (allez test -v. / ...)

Construction d'image et pousser --jobs.docker-build

Le contenu suivant est fait dans l'ordre

  1. Création d'une balise d'image à partir de git ref (par exemple v1.0.0-> 1.0.0)
  2. Créez un nom d'image Docker (le nom du registre est secret, le nom de l'image est env, le nom de la balise est 1)
  3. Connectez-vous à docker (le nom d'utilisateur et le mot de passe sont secrets)
  4. build du docker (le nom de l'image Docker a été créé en 2)
  5. docker push

Recommended Posts

[Golang] Créer une image de menu fixe avec des actions Github
Procédure pour créer un Job qui extrait une image Docker et la teste avec des actions Github
Testé de pipenv avec des actions GitHub
Créer des pages github avec lektor partie 1
Créer une image de conteneur Docker avec JRE8 / JDK8 sur Amazon Linux
Créer une visionneuse de traitement d'image avec PySimpleGUI
Créez une image factice avec Python + PIL.
Créer un environnement Python + uWSGI + Nginx avec Docker
Créer un service Web avec Docker + Flask
Créer un papier peint à pois avec la bibliothèque d'images Python
Créez une application de composition d'images avec Flask + Pillow
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Créer une image avec des caractères avec python (japonais)
Créer une couche pour AWS Lambda Python dans Docker
Créez diverses vidéos Photoshop avec Python + OpenCV ② Créez une image fixe Photoshop
[Linux] Créez un auto-certificat avec Docker et apache
Traitement d'image avec MyHDL
Exposez votre image Docker
Reconnaissance d'image avec keras
Utiliser python avec docker
Créez des jeux avec Pygame
Serveur proxy avec Docker
Créer un filtre avec scipy
Traitement d'image avec Python
Appeler bash avec Golang
Résumé de l'image Jupyter Docker
Traitement d'image avec PIL
Créez un environnement pour "Deep Learning from scratch" avec Docker
Créer un environnement qui se construit automatiquement avec Github Actions (version Android)
Créez un environnement de développement Python simple avec VSCode et Docker Desktop
Déployer des applications Go sur Google App Engine avec des actions GitHub
Créez un environnement GPU avec GCP et l'image officielle de Kaggle (docker)
Créer une instance GCE à partir d'une image Docker GCR à l'aide de terraform
Créer une application Todo avec Django ① Créer un environnement avec Docker
[Avec diagramme d'image] Nginx + gunicorn + Flask converti en Docker [Partie 1]