J'ai deux fichiers docker-compose.yml
séparés dans deux dossiers différents :
~/front/docker-compose.yml
~/api/docker-compose.yml
Comment puis-je m'assurer qu'un conteneur dans front
peut envoyer des requêtes à un conteneur dans api
?
Je sais que l'option --default-gateway
peut être définie en utilisant docker run
pour un conteneur individuel, afin qu'une adresse IP spécifique puisse être attribuée à ce conteneur, mais il semble que cette option ne soit pas disponible lors de l'utilisation de docker-compose
.
Actuellement, je finis par exécuter docker inspect mon_id_de_conteneur_api
et regarder la passerelle dans la sortie. Cela fonctionne, mais le problème est que cette adresse IP est attribuée de manière aléatoire, donc je ne peux pas m'y fier.
Une autre forme de cette question pourrait donc être :
- Puis-je attribuer une adresse IP fixe à un conteneur particulier en utilisant docker-compose ?
Mais au final, ce que je cherche est :
- Comment deux projets docker-compose différents peuvent-ils communiquer entre eux ?
10 votes
Je viens de regarder à nouveau aujourd'hui. Les développeurs ont finalement cédé et autorisé un nommage de réseau arbitraire. En utilisant la version de fichier de composition 3.5, vous pouvez spécifier un nom pour le réseau par défaut sous la clé 'networks'. Cela créera un réseau nommé sans le préfixe habituel du nom du projet s'il n'existe pas.
0 votes
Soyez conscient du type de connexion que vous prévoyez d'établir. unidirectionnelle (A->B ou B->A; décrite dans cette question) ou bidirectionnelle A <-> B qui est plus difficile à réaliser (nécessite d'envelopper les fichiers docker avec une logique supplémentaire et de vérifier si le réseau existe ou non en raison de dépendances mutuelles)