Docker: Utilisation des contextes Docker dans des Makefiles
Cette documentation fait partie du guide Usages avancés des contextes. Consultez le guide complet ici : Comment utiliser les contextes Docker dans vos scripts.
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Docker cloud CaaS (Containers as a Service) prête à l'emploi offrant de nombreux avantages, notamment :
- Déployez facilement vos containers en production avec un simple
docker-compose up.- Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://api.votre-entreprise.com, https://www.votre-entreprise.com, https://backoffice.votre-entreprise.com).
- Performance optimale et sécurité robuste grâce à une VM privée et dédiée.
- Mises à jour simplifiées en un clic.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution d'hébergement cloud Docker CaaS de Stackhero et déployer vos containers en production !
Vous pouvez également définir la variable DOCKER_CONTEXT dans un Makefile. Voici un exemple d'exportation de la variable et d'exécution d'un conteneur Docker :
# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Après avoir créé le Makefile, invoquez la commande avec :
make getIp
Si vous rencontrez l'erreur
Makefile: *** missing separator. Stop., assurez-vous que la lignedocker run [...]commence par un caractère TAB et non par des espaces.
Exploitation des fichiers .env dans les Makefiles
Vous pouvez simplifier davantage la configuration en incluant un fichier .env dans votre Makefile. Cette approche garantit une gestion centralisée de vos paramètres d'environnement :
# Makefile
include .env
export
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Créez un fichier .env avec ce contenu :
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Puis exécutez la commande :
make getIp
Si vous rencontrez l'erreur
Makefile: *** missing separator. Stop., vérifiez que la lignedocker run [...]commence par un caractère TAB plutôt que par des espaces.