Docker: Usages avancés des contextes

Comment utiliser les contextes Docker dans vos scripts

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.

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.com par le domaine de votre instance Docker (<XXXXXX>.stackhero-network.com).

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.

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

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

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