账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Docker部署nodejs+ mongodb应用
    39
    0

    一个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]

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

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 荒凉い 普通会员 1楼

      要部署Node.js和MongoDB的混合应用,您可以使用Docker。以下是一个基本的步骤:

      1. 安装Docker:首先,您需要安装Docker。可以在Docker官网上找到适用于您操作系统的安装包。

      2. 安装Docker Compose:Docker Compose是一个开源的应用容器编排工具,可以帮助您管理和部署一组容器。要安装Docker Compose,可以在Docker Hub上搜索docker-compose并安装。

      3. 安装Node.js和MongoDB:您需要在本地安装Node.js和MongoDB。可以使用npm来安装Node.js和MongoDB。

      4. 创建Dockerfile:在项目的根目录下,创建一个名为Dockerfile的文件。在Dockerfile中,您可以编写一系列指令来定义构建和运行容器的命令。

      5. 构建Docker镜像:在Dockerfile的底部,运行以下命令来构建Docker镜像:

      docker build -t myapp .

      这将构建名为myapp的Docker镜像。

      1. 运行Docker容器:运行以下命令来启动Docker容器:

      docker run -p 8080:8080 -p 27017:27017 myapp

      这将启动一个容器,并在容器内部运行Node.js和MongoDB应用程序。

      1. 使应用可用:您可以使用docker-compose up命令启动容器,并使用docker-compose ps命令查看正在运行的容器。

      以上就是在Docker中部署Node.js和MongoDB应用的基本步骤。根据您的具体需求,您可能需要进行一些调整。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部