通过使用Docker中设置的环境系统variables,无法从节点连接到MongoDB服务器

我正在尝试使用节点和MongoDB镜像来构buildDocker镜像,但是我无法从Dockerfile或docker-composer中设置环境variables。

Dockerfile:

FROM节点

运行mkdir / app WORKDIR / app COPY package.json / app

运行npm安装COPY。 /应用

ENV MONGODB_URI 192.168.99.100 / myapp

EXPOSE 3030

CMD [“npm”,“开始”]

泊坞窗,compose.yml:

版本:“2”

服务:

网站:

build: . volumes: - ./:/app ports: - "3030:3030" environment: - MONGODB_URI="192.168.99.100/myapp" links: - "mongo" 

蒙戈:

 image: "mongo" ports: - "27017:27017" volumes_from: - mongodata 

mongodata:

 image: tianon/true volumes: - /data/db 

我想从configuration对象中获取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'; } 

我得到的错误是:

错误:连接stringweb_1 |中没有提供主机名或主机名 在module.exports(/app/node_modules/mongodb/lib/url_parser.js:24:11)

如果我试图直接使用URL,而不依赖于环境variables,它工作正常,我得到一个连接。

那么,显然我刚刚得到了我的橡皮鸭风格的答案。

问题出在' – MONGODB_URI =“192.168.99.100/myapp”'。 该值不应该用引号括起来。

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