IREX - Automatiser Docker avec GitHub Actions : Optimisation d’un pipeline CI/CD

Dans cet article, nous allons explorer comment GitHub Actions peut révolutionner l'automatisation des workflows Docker dans vos pipelines CI/CD.

 · 2 min read

Automatiser Docker avec GitHub Actions

Table des matières

Introduction

Avec la montée en puissance du développement cloud-native, l’automatisation est devenue une nécessité pour garantir des déploiements rapides et fiables. GitHub Actions simplifie l’intégration de Docker dans vos workflows CI/CD, réduisant ainsi les interventions manuelles et optimisant les performances.

Pipeline Docker avec GitHub Actions

Image 1 : Pipeline CI/CD automatisé avec GitHub Actions

Configuration de GitHub Actions

La première étape consiste à créer un fichier workflow dans le dossier .github/workflows de votre dépôt.

name: Docker Workflow
on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1

      - name: Build Docker Image
        run: docker build -t myapp:${{ github.sha }} .

      - name: Push Docker Image
        run: |
          echo ${{ secrets.DOCKER_PASSWORD }} | docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin
          docker push myapp:${{ github.sha }}

Ce workflow automatise la création et le push d’une image Docker dès qu’une modification est effectuée sur la branche principale.

Automatisation de la création d'images Docker

Après chaque mise à jour du code, vous pouvez générer automatiquement une nouvelle image Docker :

- name: Build Docker image
  run: docker build -t myapp:${{ github.sha }} .

Pour mieux organiser vos tags, ajoutez des références dynamiques :

- name: Build and tag Docker image
  run: docker build -t myapp:${{ github.sha }} -t myapp:${{ github.ref }} .
Automatisation de Docker avec GitHub Actions

Image 2 : Exemple d'intégration Docker et GitHub Actions

Déploiement et Sécurité

Une fois l’image générée, elle doit être stockée en toute sécurité. Pour ce faire, vous pouvez configurer une authentification Docker :

- name: Log in to Docker Hub
  run: |
    echo ${{ secrets.DOCKER_PASSWORD }} | docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin

Ensuite, poussez votre image vers un registre :

- name: Push Docker image
  run: docker push myapp:${{ github.sha }}

Enfin, intégrez un scanner de vulnérabilités (comme Trivy) pour garantir la sécurité des images :

- name: Scan Docker image for vulnerabilities
  run: |
    trivy image myapp:${{ github.sha }}
    if [ $? -ne 0 ]; then exit 1; fi

Conclusion

L’intégration de Docker avec GitHub Actions permet d’accélérer les déploiements, d’améliorer la sécurité et de réduire les tâches répétitives. Que ce soit pour la construction, le stockage ou le déploiement des images, ces automatisations garantissent une meilleure gestion des workflows DevOps.

Références

Source : Boost Your CI/CD Pipeline: Automate Docker With GitHub Actions


No comments yet

No comments yet. Start a new discussion.

Add Comment