Docker部署nodejs+ mongodb应用

一个nodejs+mongodb应用的应用。本地使用docker可以跑起来,但是使用DaoCloud部署应用的时候失败,查看了日志,是连接数据库的时候出现了问题.

nodejs连接mongodb

mongoose.connect('mongodb://mongo/dashboard', {
  useMongoClient: true
})
mongoose.Promise = global.Promise

Dockerfile

FROM node

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install --registry=https://registry.npm.taobao.org

COPY . .

CMD [ "npm", "start" ]

docker-compose.yml

version: '3'
services:
  app:
    build: app
    volumes: 
    - ./app:/usr/src/app
    - /usr/src/app/node_modules
    ports:
    - "3000:3000"
    depends_on:
    - mongo
  mongo:
    image: mongo
    ports:
    - "19999:27017"
    restart: always
  adminmongo:
    image: "mrvautin/adminmongo"
    ports:
    - "1234:1234"

因为本地开启了mongodb的服务,27017端口被占用,所以修改了端口, 本地测试的时候,一切功能正常。Robomongo也能连接到mongodb, 能看到数据。

错误提示:

MongoError: failed to connect to server [mongo:27017] on first connect [MongoError: getaddrinfo ENOTFOUND mongo mongo:27017]

但是部署到线上如何处理数据库, 请大佬指点

阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题