我正在尝试使用节点和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 回答
好吧,显然我只是得到了我的橡皮鸭式答案 .
问题在于' - MONGODB_URI =“192.168.99.100 / myapp”' . 该值不应包含在引号中 .
我把它设置为“MONGODB_URI = 192.168.99.100 / myapp”,它工作正常 .