Sono finalmente riuscito a collegare entrambi i container. I miei risultati qui a scopo di documentazione.
Punti principali
docker-compose
la versione 2 crea unbridge
rete e vi aggiunge tutti i contenitori.mongod
non è a conoscenza di questa rete e quindi non si lega a quell'ip. Per impostazione predefinita, si associa solo a127.0.0.1
mongoimport
non è stato possibile stabilire la connessione utilizzando il nome del contenitore, anche se dovrebbe essere tradotto nell'ip del contenitore.
Soluzione
- Assegna un IP statico al mongodb attraverso la definizione esplicita di una
network
- Inizia il contenitore mongo con
--bind_ip
flag che punta a quell'ip statico - Utilizza l'indirizzo IP invece del nome host con
mongoimport
docker-compose.yml
version: '2'
services:
mongodb:
image: mongo:3.2
ports:
- "27017:27017"
networks:
mongo_net:
ipv4_address: 172.16.0.1
command: mongod --bind_ip 127.0.0.1,172.16.0.1
mongo-seed:
build: ./mongo-seed
networks:
mongo_net:
depends_on:
- mongodb
networks:
mongo_net:
driver: bridge
ipam:
config:
- subnet: 172.16.0.0/24
gateway: 172.16.0.254
Seme Mongo/File Docker
FROM mongo:3.2
COPY init.json /init.json
CMD mongoimport --host 172.16.0.1 --db test --collection users \
--type json --file /init.json --jsonArray