Docker: Utiliser des variables d'environnement dans docker-compose.yml
Cette documentation fait partie du guide Déployer avec GitHub Actions. Consultez le guide complet ici : Découvrez comment déployer vos conteneurs Docker avec GitHub Actions.
Bienvenue sur la documentation de Stackhero
Stackhero propose une plateforme Docker cloud CaaS (Containers as a Service) prête à l'emploi, conçue pour des déploiements de containers rapides et fiables :
- Déployez en production avec une simple commande
docker-compose up. Aucune configuration supplémentaire n'est nécessaire : lancez simplement vos containers.- Choisissez votre propre nom de domaine, automatiquement sécurisé en HTTPS (par exemple : https://api.votre-entreprise.com, https://www.votre-entreprise.com ou https://backoffice.votre-entreprise.com).
- Profitez de hautes performances et d'une sécurité renforcée sur une infrastructure privée et dédiée.
- Appliquez les mises à jour en un clic pour une maintenance simple et sans effort.
Vos containers peuvent être en production en environ cinq minutes. Stackhero gère pour vous l'infrastructure, les mises à jour et la sécurité, afin que vous puissiez vous concentrer sur le développement de vos applications. Découvrez-en plus sur l'hébergement cloud Docker CaaS.
Vous pouvez définir des variables d'environnement dans votre projet GitHub qui seront accessibles dans votre fichier docker-compose.yml. C'est très utile si vous souhaitez déployer sur des domaines différents (par exemple, staging.my-company.com pour le staging et my-company.com pour la production).
- Dans GitHub, allez dans Settings > Environments et créez une variable d'environnement nommée
WEBSITE_DOMAIN. - Pour l'environnement de staging, définissez
WEBSITE_DOMAINsur "staging.my-company.com". - Pour l'environnement de production, définissez
WEBSITE_DOMAINsur "my-company.com".
Ensuite, mettez à jour votre fichier .github/workflows/deploy-to-stackhero.yml pour transmettre la variable WEBSITE_DOMAIN à l'action GitHub Stackhero :
name: Deploy to Stackhero
description: Deploy branch "${{ github.ref_name }}" to Stackhero
on:
push:
branches: [ "production", "staging" ]
jobs:
Deploy:
environment: ${{ github.ref_name }}
runs-on: ubuntu-latest
steps:
- uses: stackhero-io/github-actions-deploy-docker-containers-to-stackhero@v1
with:
certificates_password: ${{ secrets.STACKHERO_CERTIFICATES_PASSWORD }}
endpoint: ${{ vars.STACKHERO_ENDPOINT }}
deployment_command: ${{ vars.STACKHERO_DEPLOY_COMMAND }}
env:
WEBSITE_DOMAIN: ${{ vars.WEBSITE_DOMAIN }}
Mettez ensuite à jour votre fichier docker-compose.yml pour utiliser la variable WEBSITE_DOMAIN à la place d'un nom de domaine en dur :
services:
test:
image: nginx
labels:
- "traefik.enable=true"
- "traefik.http.routers.test.rule=Host(`${WEBSITE_DOMAIN}`)" # Utilise la variable d'environnement WEBSITE_DOMAIN comme nom de domaine.
- "traefik.http.routers.test.tls.certresolver=letsencrypt"