J'essaie d'utiliser Docker dans le cadre de ma suite de tests. J'ai 2 conteneurs mis en place comme:Docker conteneur de montage d'une base de données à partir d'un autre conteneur
version: "3"
services:
mongo_3_4:
image: mongo:3.4
command: ["mongod", "--smallfiles"]
ports:
- "27021:27017"
frontend:
build:
context: ./Dockerfiles/path/
dockerfile: Dockerfile
ports:
- "63175:63175"
Le frontend
a la possibilité de monter un MongoDB où je dois lui donner des informations d'identification d'hôte et le port, par exemple, j'utiliser localement localhost | 27021
et mon db serait monté .
La seule façon de le faire fonctionner est d'obtenir l'adresse IP de la machine hôte. J'ai réalisé cela en faisant comme décrit here: $ ipconfig getifaddr en0
obtenant ainsi la machine hôte IP et l'utiliser pour monter mon db du frontend-à-dire 192.168.1.42 | 27021
Le problème que j'ai est cet hôte IP sera différent sur les différents environnements comme il est utilisé dans le cadre d'une suite de tests. Il serait utilisé sur diverses machines locales avec différents systèmes d'exploitation et dire Travis-ci.
Existe-t-il une méthode recommandée pour coder en dur cette adresse IP hôte à partir de docker ou devrais-je créer un script qui fonctionne sur l'hôte et le faire sudo ifconfig lo0 alias 192.168.46.49
?
Apparemment trop compliqué quand tout ce que je fais est d'avoir 2 conteneurs et que je veux que l'un d'entre eux puisse monter le db de l'autre?
Ceci est basique [Docker Networking] (https://docs.docker.com/engine/userguide/networking/). Jetez un coup d'oeil à [cette réponse] (https://stackoverflow.com/a/34728404/174843) pour un résumé. –