Docker: Usages avancés des contextes
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 qui offre de nombreux avantages, notamment :
- Déployez facilement vos conteneurs en production avec un simple
docker-compose up.- Nom de domaine personnalisable sécurisé en HTTPS (par exemple, https://api.votre-entreprise.com, https://www.votre-entreprise.com, https://backoffice.votre-entreprise.com).
- Performance optimale et sécurité renforcée 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 Docker CaaS cloud hosting de Stackhero et déployer vos conteneurs en production !
Travailler avec les commandes Docker context use est idéal pour exécuter des commandes manuellement. Cependant, lors de l'utilisation de scripts, il existe des méthodes alternatives plus efficaces qui simplifient le processus. Plutôt que d'appeler directement la commande, vous pouvez définir le contexte souhaité via la variable d'environnement DOCKER_CONTEXT. Cette approche s'intègre parfaitement dans les workflows de scripts et garantit une configuration claire.
Dans les exemples fournis, remplacez
<XXXXXX>.stackhero-network.compar le domaine de votre instance Docker (<XXXXXX>.stackhero-network.com).
Gestion des contextes Docker dans les scripts bash
Voici un exemple pour définir le contexte Docker dans un script bash :
#!/bin/bash
set -e
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
echo "IP depuis Docker pour l'instance Stackhero :"
docker run --rm alpine wget -q -O - ifconfig.me
En définissant la variable d'environnement DOCKER_CONTEXT, vous pouvez gérer facilement le contexte actif directement dans vos scripts.
Externaliser la configuration avec un fichier .env
Pour éviter de coder en dur la valeur de DOCKER_CONTEXT, vous pouvez la charger depuis un fichier .env. Cette méthode permet de garder les paramètres d'environnement organisés et facilite les modifications :
#!/bin/bash
set -e
source .env
echo "IP depuis Docker pour l'instance Stackhero :"
docker run --rm alpine wget -q -O - ifconfig.me
Créez un fichier .env avec le contenu suivant :
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Utilisation des contextes Docker dans les Makefiles
Vous pouvez également définir la variable DOCKER_CONTEXT dans un Makefile. Voici un exemple d'export 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, lancez la commande avec :
make getIp
Si vous obtenez l'erreur
Makefile: *** missing separator. Stop., vérifiez que la lignedocker run [...]commence bien par un caractère TAB et non par des espaces.
Utiliser les fichiers .env dans les Makefiles
Vous pouvez encore simplifier la configuration en incluant un fichier .env dans votre Makefile. Cette méthode permet 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 obtenez l'erreur
Makefile: *** missing separator. Stop., assurez-vous que la lignedocker run [...]commence par un caractère TAB et non par des espaces.