Я пытаюсь использовать Docker впервые. У меня есть стековое приложение MEAN, для которого я пытаюсь создать файл Dockerfile и docker-compose. Мой Node-сервер работает и отображает внешний интерфейс Angular, однако я получаю ERR_EMPTY_RESPONSE, когда приложение пытается выполнить первоначальные запросы к моей базе данных Mongo, и также не сохраняет данные в базу данных.
Мой файл docker-compose выглядит так:
version: "2"
services:
app:
container_name: app
restart: always
build: .
ports:
- "3000:3000"
links:
- mongo
mongo:
container_name: mongo
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
Мой Dockerfile выглядит так:
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm i
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
И в моем файле server.js у меня есть следующие строки кода:
const MONGODB_URI = 'mongodb://mongo:27017/myDB';
// connect to mongodb
mongoose.Promise = Promise;
mongoose.connect(MONGODB_URI, { useNewUrlParser: true })
.catch((err) => console.error(err));
Я не могу понять, что может быть причиной, любая помощь будет принята с благодарностью. Когда я запускаю docker container ls
, он показывает два контейнера, один для моего приложения и один для монго, но монго не работает.
Редактировать: Вот вывод docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16451b5b6f9d myapp_app "npm start" 2 days ago Up 2 days 0.0.0.0:3000->3000/tcp app
ad21af079c62 mongo "docker-entrypoint.s…" 2 days ago Up 2 days 0.0.0.0:27017->27017/tcp mongo