【发布时间】:2019-12-01 14:26:41
【问题描述】:
我正在尝试使用 process.env 访问在我的 nodejs 应用程序内的任务定义中设置的环境变量。
我使用 Dockerfile 创建项目的映像,将其上传到 ECR,然后在任务定义中使用此映像。
我在 Dockerfile 中为 nodejs 应用程序设置环境变量,如下所示:
# Dockerfile
...
RUN ROOT_DIR='/'
RUN PUBLIC_DIR='/public'
...
我有这个任务定义:
# task_definition.json
...
"environment" : [
{ "name" : "KeyOne", "value" : "KeyOneValue" },
{ "name" : "KeyTwo", "value" : "KeyTwoValue" }
]
...
我无法访问process.env.KeyOne / process.env.KeyTwo(它们是undefined)
我希望能够从任务定义中设置这些环境变量,然后使用 process.env 在 nodejs 应用程序中引用它们,而不是在 Dockerfile 中设置它们。
【问题讨论】:
-
这应该可以工作,但请注意,您不要在 docker 中使用 RUN 命令设置环境变量
-
显然,像这样设置它们可以让
process.env使用它们 -
hm,我不是节点专家,但如果是这样的话,环境变量会在构建过程中添加到进程中,并且在运行时不可用
-
我使用类似的设置滚动,(基于 laravel 的项目),它按预期工作
-
您的项目中是否还有 .env 文件?因为如果 .env 文件丢失,它可能会静默失败
标签: node.js amazon-web-services amazon-ecs