我试图建立一个Docker映像使用一个节点和mongob映像,但我不能设置环境变量从Dockerfile或docker作曲家。
Dockerfile:
从节点
运行mkdir/app WORKDIR/app COPY包。json/app
运行npm安装副本/应用程序
ENV MONGODB_URI 192.168.99.100/myapp
曝光3030
CMD[“npm”,“开始”]
docker-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
蒙哥达塔:
image: tianon/true
volumes:
- /data/db
我试图从配置对象内部获取MONGODB_URI。控制台。log返回预期结果,但我仍然得到一个错误。
类配置{
constructor() {
this.port = process.env.PORT || 3030;
console.log(process.env.MONGODB_URI);
this.databaseUrl = process.env.MONGODB_URI || 'localhost/myapp';
}
我得到的错误是:
错误:模块上的连接字符串web_1|中未提供主机名或主机名。导出(/app/node\u modules/mongodb/lib/url\u parser.js:24:11)
如果我尝试直接使用URL,而不依赖于环境变量,它工作得很好,并且我得到了一个连接。
很显然,我刚刚得到了我的橡皮鸭式回答。
问题在于'-MONGODB_URI=“192.168.99.100/myapp'。该值不应用引号括起来。
我将其设置为“MONGODB_URI=192.168.99.100/myapp”,它工作正常。
我无法从环境变量中获取值。有很多类似的问题。但没有一个对我有用 应用程序.属性 系统变量 但当我硬编码时,它工作得很好。 更新
我在这个repo中用2个图像制作了3个docker容器,使用MongoDB公共图像制作了1个。我使用 < code>docker-compose.yaml是: 但是MongoDB无法与节点服务器连接,并给出了以下错误: < code>backend/db.js的代码: 添加mongouri作为环境变量后的终端输出: 新错误:
我试着去看一本教程,上面写着: 有几种方法可以加载凭据。 null 根据一些谷歌搜索,我似乎需要设置中的变量?如何以及在何处设置这些凭据?请举例。
问题内容: 是否可以在log4j xml配置文件中引用系统环境变量(与Java系统属性相反)? 我希望能够执行以下操作: 并使其从系统环境变量中获取,因此我可以避免必须通过-D参数传递太多内容。 问题答案: 仅在log4j 2.X中记录了此语法,因此请确保使用正确的版本。它不适用于1.X版本。
问题内容: 我正在尝试遵循一个教程,它说: 有几种加载凭证的方法。 从环境变量加载, 从磁盘上的JSON文件加载, 密钥需要如下: …这意味着,如果您正确设置环境变量,则根本不需要管理应用程序中的凭据。 基于一些谷歌搜索,看来我需要将变量设置为?如何以及在哪里设置这些凭据?请举例。 问题答案: 使用环境变量(在这种情况下)将凭据传递给您的应用程序。并且都可以分别从和访问。您无需对其进行编辑,只需访
问题内容: Java是否具有默认的“系统环境变量”,当我们设置它时将始终读取/附加它?/ etc似乎仅适用于TOMCAT / JBOSS等。 我不想通过Java系统属性(通过-Dprop1 = value1 -Dprop2 = value2传递)来设置它,因为它涉及shell / batch脚本。 它应可跨操作系统使用,例如Windows中的双击jar文件。 它应该可以在不同的JRE(Sun,IB