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 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 !

Travailler avec les commandes Docker context use est idéal pour exécuter des commandes manuellement. Mais lors de l'utilisation de scripts, il existe des méthodes alternatives plus adaptées qui simplifient le processus. Au lieu d'invoquer directement la commande, vous pouvez définir le contexte souhaité en utilisant la variable d'environnement DOCKER_CONTEXT. Cette approche s'intègre parfaitement dans les workflows de scripts et maintient une configuration claire.

Dans les exemples fournis, remplacez <XXXXXX>.stackhero-network.com par le domaine spécifique de votre instance Docker (<XXXXXX>.stackhero-network.com).

Voici un exemple de définition du contexte Docker dans un script bash :

#!/bin/bash
set -e

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

echo "IP de 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.

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 ajustements :

#!/bin/bash
set -e

source .env

echo "IP de 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

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 ligne docker run [...] commence par un caractère TAB et non par des espaces.

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 ligne docker run [...] commence par un caractère TAB plutôt que par des espaces.