首页 文章

无法使用Docker中设置的环境系统变量从节点连接到MongoDB服务器

提问于
浏览
1

我正在尝试使用节点和mongodb图像构建Docker镜像,但我无法从Dockerfile或docker-composer设置环境变量 .

Dockerfile:

FROM节点RUN mkdir / app WORKDIR / app COPY package.json / app RUN npm install COPY . / app ENV MONGODB_URI 192.168.99.100/myapp EXPOSE 3030 CMD [“npm”,“start”]

泊坞窗,compose.yml:

版本:“2”服务:web:build :.

卷:

  • ./:/app

端口:

  • “3030:3030”

环境:

  • MONGODB_URI =“192.168.99.100/myapp”

链接:

  • “mongo”
    mongo:图片:“mongo”

端口:

  • “27017:27017”

volumes_from:

  • 蒙古塔
    mongodata:image:tianon / true

卷:

  • / data / db

我试图从配置对象中获取MONGODB_URI . console.log返回预期的结果,但我仍然收到错误 .

class Config {constructor(){
this.port = process.env.PORT || 3030;
的console.log(process.env.MONGODB_URI);
this.databaseUrl = process.env.MONGODB_URI ||的 'localhost / MyApp的';
}

我得到的错误是:

错误:连接字符串web_1 |中未提供主机名或主机名在module.exports(/app/node_modules/mongodb/lib/url_parser.js:24:11)

如果我尝试直接使用URL,而不依赖于环境变量,它工作正常,我得到一个连接 .

1 回答

  • 1

    好吧,显然我只是得到了我的橡皮鸭式答案 .

    问题在于' - MONGODB_URI =“192.168.99.100 / myapp”' . 该值不应包含在引号中 .

    我把它设置为“MONGODB_URI = 192.168.99.100 / myapp”,它工作正常 .

相关问题