Ich versuche, Docker als Teil meiner Testsuite zu verwenden. Ich habe 2 Container aufgebaut wie:Docker-Container, der eine Datenbank aus einem anderen Container einbaut
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"
Die frontend
hat die Fähigkeit, eine MongoDB zu montieren, wo ich ihm Anmeldeinformationen von Host und Port geben, zum Beispiel vor Ort würde ich localhost | 27021
verwenden und meine db montiert werden würde .
Der einzige Weg, wie ich es zur Zeit arbeiten kann, ist, indem Sie die IP des Host-Computers. I erreicht dies, indem wie beschrieben here tun: $ ipconfig getifaddr en0
damit die Host-Maschine IP bekommen und dessen Verwendung für die Montage meine db vom Frontend dh 192.168.1.42 | 27021
Das Problem ich habe, ist diese Host-IP wird auf verschiedenen Umgebungen unterschiedlich sein wie es als Teil einer Testsuite verwendet wird. Es würde auf verschiedenen lokalen Maschinen mit verschiedenen Betriebssystemen verwendet werden und Travis-ci sagen.
Gibt es eine empfohlene Möglichkeit, diese Host-IP von Docker aus hart zu programmieren oder müsste ich ein Skript erstellen, das den Host ausarbeitet und dies tut sudo ifconfig lo0 alias 192.168.46.49
?
Scheint einfach zu kompliziert, wenn alles, was ich tue, ist 2 Container zu haben und wollen, dass einer von ihnen in der Lage ist, die db von der anderen zu mounten?
Dies ist einfach [Docker Networking] (https://docs.docker.com/engine/userguide/networking/). Werfen Sie einen Blick auf [diese Antwort] (https://stackoverflow.com/a/34728404/174843) für eine Zusammenfassung. –