将Docker用于MEAN Stack应用程序:ERR_EMPTY_RESPONSE

时间:2019-01-18 20:01:36

标签: mongodb docker docker-compose dockerfile mean-stack

我正在尝试第一次使用Docker。我有一个MEAN堆栈应用程序,我正在尝试为其创建Dockerfile和docker-compose文件。我的Node服务器正在运行并显示Angular前端,但是当该应用尝试向Mongo数据库发出初始请求时,却收到ERR_EMPTY_RESPONSE,并且也没有将数据保存到该数据库。

我的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时,它显示了两个容器,一个用于我的应用程序,一个用于mongo,但是mongo似乎没有工作。

编辑:这是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

0 个答案:

没有答案