Что у меня есть
Я пытаюсь подключить мое приложение nodejs к mongoDB-контейнеру.Я сделал это с открытым Mediums-Tutorial , поэтому мои файлы Docker выглядят так:
Dockerfile
FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8085
CMD ["npm","start"]
docker-compose.yml
version: "2"
services:
metis:
build: .
ports:
- "8085:8085"
links:
- mongo
mongo:
image: mongo
volumes:
- /data/mongodb/db:/data/db
ports:
- "27017:27017"
Но когда я пытаюсь подключиться к базе данных, я получаю
name "MongoNetworkError"
message "failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]"
С моим приложением , похожим на это:
let mongodb = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017'
const dbName = 'metis'
mongodb.connect(url, (err, client) => {
if (err) reject(err)
else {
const db = client.db(dbName)
db.collection(type + ":" + entity).insertOne(document, (error, result) => {
if (error) reject(error)
else { resolve(result) }
})
client.close()
}
})
})
Работает нормально, когда я просто запускаю приложение узла и mongodb-сервер самостоятельно.но когда сочиняю в Docker, я просто не могу получить соединениеЯ понятия не имею, почему.Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать.
Построение образа докера с помощью самого докера также работает, но без связи с каким-либо внешним mongodb.
Мой вопрос:
Как мне подключить MongoDB-Container и мое приложение в Docker?