#node.js #mongodb #docker #docker-compose #dockerfile
#node.js #mongodb #docker #docker-compose #dockerfile
Вопрос:
version: '3'
services:
app:
container_name: node-mongo
env_file:
"./NodeJs/.env"
restart: always
image: style-app
build:
context: ./NodeJs
dockerfile: ./Dockerfile
ports:
- '8083:6017'
external_links:
- mongo
mongo:
container_name: mongo
image: mongo
ports:
- '27017:27017'
frontend:
build:
context: ./frontstyle
dockerfile: ./Dockerfile
image: "front-style-frontend"
ports:
- "3000:3000"
links:
- "app:be"
внутри .env
MONGOURI=mongodb://mongo:27017/mydb
внутри app.js
var mongoDB = process.env.MONGOURI;
mongoose.connect(mongoDB, { useNewUrlParser: true})
Я не знаю, почему это неправильно подключается, если я создаю образ для mongo, затем я запускаю docker-compose up, в нем уже говорится, что имя "/mongo"
контейнера уже используется контейнером.
Пожалуйста, руководство
Комментарии:
1. Я думаю, что MONGOURI должен быть mongodb: // mongo: 27017/mydb
2. Удаление явного
container_name:
может помочь избежать конфликтов; вам также не нужно создавать образ или контейнер MongoDB отдельно от этой настройки компоновки.3. Я думаю, что у меня есть такая же строка, не так ли?
4. @DavidMaze это полезно
5. здесь mongo — это имя изображения, а не имя контейнера.