Использование Docker для приложения стека MEAN: ERR_EMPTY_RESPONSE - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь использовать 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
...