Maison >développement back-end >Golang >Master la gestion de l'image Docker avec les actions GitHub et les registres de conteneurs
Mastering Docker Image Management with GitHub Actions: A Comprehensive Guide
Les amis et collègues demandent souvent: "Comment gérez-vous vos déploiements si efficacement?" Mon secret? Automatiser les tâches répétitives et se concentrer sur ce qui compte vraiment. Ce message détaille comment j'utilise les actions GitHub et les registres de conteneurs pour la gestion de l'image Docker sans couture - un processus que vous pouvez facilement reproduire.
Dans le paysage de développement logiciel d'aujourd'hui, CI / CD n'est pas un luxe; C'est une nécessité. Imaginez le déploiement du code sans effort tout en profitant d'un café - c'est le pouvoir de combiner les actions GitHub et les registres de conteneurs pour la gestion de l'image Docker.
Les actions GitHub sont plus qu'un simple outil d'automatisation; Il s'agit de votre solution CI / CD intégrée, répondant aux poussées de code, aux demandes de traction ou aux événements planifiés. Son intégration GitHub sans couture le rend idéal pour les équipes qui utilisent déjà la plate-forme.
Considérez les registres des conteneurs comme Docker Hub ou GitHub Container Registry (GHCR) en tant que référentiels sécurisés pour vos images Docker. Ils fournissent un contrôle de version et un déploiement cohérent dans tous les environnements, du développement à la production.
Créez un répertoire .github/workflows
dans votre référentiel et définissez un fichier de flux de travail YAML. Cet exemple construit, tags et pousse les images Docker:
<code class="language-yaml">name: Build and Push Docker Image on: push: branches: - main jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Log in to GitHub Container Registry # Securely authenticate with GHCR run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build Docker Image # Build with 'latest' tag run: docker build -t ghcr.io/${{ github.repository }}/app:latest . - name: Push Docker Image to GHCR run: docker push ghcr.io/${{ github.repository }}/app:latest</code>
Stocker les informations sensibles (rédactions de registre) en toute sécurité dans les secrets GitHub. Accédez aux paramètres de votre référentiel & gt; Secrets et variables & gt; Actions et ajouter des secrets tels que:
DOCKER_USERNAME
DOCKER_PASSWORD
Pour GHCR, le Secret GITHUB_TOKEN
est automatiquement fourni et étendu à votre référentiel.
Utilisez des variables d'environnement GitHub comme GITHUB_SHA
et GITHUB_REF
pour un versioning efficace:
<code class="language-yaml">name: Build and Push Docker Image on: push: branches: - main jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Log in to GitHub Container Registry # Securely authenticate with GHCR run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build Docker Image # Build with 'latest' tag run: docker build -t ghcr.io/${{ github.repository }}/app:latest . - name: Push Docker Image to GHCR run: docker push ghcr.io/${{ github.repository }}/app:latest</code>
Tirez le cache de construction de Docker pour éviter les travaux redondants:
<code class="language-yaml">- name: Build Docker Image with Tags # Tag with 'latest' and unique commit SHA run: | IMAGE_NAME=ghcr.io/${{ github.repository }}/app docker build -t $IMAGE_NAME:latest -t $IMAGE_NAME:${{ github.sha }} . - name: Push Docker Images with Tags run: | docker push ghcr.io/${{ github.repository }}/app:latest docker push ghcr.io/${{ github.repository }}/app:${{ github.sha }}</code>
GITHUB_TOKEN
a les autorisations correctes. ACTIONS_STEP_DEBUG=true
dans les secrets du référentiel pour la journalisation détaillée. J'utilise des actions GitHub pour déployer des images Docker sur GHCR et Docker Hub pour mon projet, Travast (un portail de travail construit avec GO). Cette automatisation a considérablement amélioré l'efficacité de notre équipe.
En suivant ces étapes, vous pouvez automatiser la gestion de votre image Docker. Commencez dès aujourd'hui, rationalisez vos déploiements et augmentez votre productivité. Envisagez de soutenir mon travail sur le ko-fi si vous avez trouvé cela utile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!