У меня есть приложение nodejs
, которое докеризовано и нуждается в реплицированной базе данных MongoDB.Я собрал свою реплицированную MongoDB в docker-compose и работает отлично.если я теперь запустил команду docker inspect MongoDB-primary |grep IPAddress
ее печать:
"IPAddress": "",
"IPAddress": "172.18.0.2",
в моем приложении, я передаю этот ip в виде строки mongoconnection (конечно, с именами протоколов), но приложение не может подключиться к MongoDB и выдает эту ошибкусообщение (приложение также является контейнером Docker):
message: 'failed to connect to server [172.18.0.2:27017] on first connect [MongoNetworkError: connection 1 to 172.18.0.2:27017 timed out]',
вот мой составной файл docker mongodb:
version: '2'
services:
mongodb-primary:
image: 'bitnami/mongodb:latest'
environment:
- MONGODB_REPLICA_SET_MODE=primary
volumes:
- 'mongodb_master_data:/bitnami'
mongodb-secondary:
image: 'bitnami/mongodb:latest'
depends_on:
- mongodb-primary
environment:
- MONGODB_REPLICA_SET_MODE=secondary
- MONGODB_PRIMARY_HOST=mongodb-primary
- MONGODB_PRIMARY_PORT_NUMBER=27017
mongodb-arbiter:
image: 'bitnami/mongodb:latest'
depends_on:
- mongodb-primary
environment:
- MONGODB_REPLICA_SET_MODE=arbiter
- MONGODB_PRIMARY_HOST=mongodb-primary
- MONGODB_PRIMARY_PORT_NUMBER=27017
volumes:
mongodb_master_data:
driver: local
и мой файл Docker приложения js узла:
FROM node:6.0
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm install --only=productio
# Bundle app source
COPY . .
EXPOSE 3001
CMD [ "npm", "start" ]
как я могу это исправить?