我应该如何使环境变量可用于我的网络应用程序?
How should I make environment variables available to my web app?
OS:Ubuntu 20.04 LTS
我正在尝试使用 Keter 部署 Web 应用程序,该应用程序依赖于几个我似乎很难提供的环境变量。
作为参考,我一直在使用 Ubuntu 社区的 this 资源来尝试解决问题。
我将环境变量添加到/etc/environment
,文件如下所示:
PATH=...
MY_VAR="something"
MY_VAR2="something-else"
运行 echo $MY_VAR
正确打印 something
.
我在上述资源中读到,使用 sudo
时环境变量是“未绑定”的。使用 top
时,我可以看到 keter
进程以 root
运行,所以我认为这可能是问题所在,所以我按照使用 sudo visudo
的说明更改 /etc/sudoers
.我在文件底部添加了行 Defaults env_keep += "MY_VAR MY_VAR2"
。
我重新启动了服务器以确保所有内容都被重新读取并且可以确认 echo $MY_VAR
和 sudo echo $MY_VAR
都产生了正确的结果。
不幸的是,这似乎对网络应用程序没有影响,因为日志仍然显示以下错误:
my-app: MY_VAR: getEnv: does not exist (no environment variable)
.
在我项目的 keter.yml
文件中,我的节中有以下几行:
forward-env:
- MY_VAR
- MY_VAR2
任何关于如何使这项工作的建议将不胜感激!
看起来 Keter 的 env:
YAML 设置的文档记录很差,无法为应用程序提供环境变量设置,因此与其转发它们,不如尝试设置它们。在 keter.yml
中,输入:
env:
MY_VAR: "something"
MY_VAR2: "something-else"
并完全摆脱 forward-env:
设置。
或者,这可以放在全局 /opt/keter/etc/keter-config.yaml
文件中,它将指定要传递给所有应用程序的环境变量。
OS:Ubuntu 20.04 LTS
我正在尝试使用 Keter 部署 Web 应用程序,该应用程序依赖于几个我似乎很难提供的环境变量。
作为参考,我一直在使用 Ubuntu 社区的 this 资源来尝试解决问题。
我将环境变量添加到/etc/environment
,文件如下所示:
PATH=...
MY_VAR="something"
MY_VAR2="something-else"
运行 echo $MY_VAR
正确打印 something
.
我在上述资源中读到,使用 sudo
时环境变量是“未绑定”的。使用 top
时,我可以看到 keter
进程以 root
运行,所以我认为这可能是问题所在,所以我按照使用 sudo visudo
的说明更改 /etc/sudoers
.我在文件底部添加了行 Defaults env_keep += "MY_VAR MY_VAR2"
。
我重新启动了服务器以确保所有内容都被重新读取并且可以确认 echo $MY_VAR
和 sudo echo $MY_VAR
都产生了正确的结果。
不幸的是,这似乎对网络应用程序没有影响,因为日志仍然显示以下错误:
my-app: MY_VAR: getEnv: does not exist (no environment variable)
.
在我项目的 keter.yml
文件中,我的节中有以下几行:
forward-env:
- MY_VAR
- MY_VAR2
任何关于如何使这项工作的建议将不胜感激!
看起来 Keter 的 env:
YAML 设置的文档记录很差,无法为应用程序提供环境变量设置,因此与其转发它们,不如尝试设置它们。在 keter.yml
中,输入:
env:
MY_VAR: "something"
MY_VAR2: "something-else"
并完全摆脱 forward-env:
设置。
或者,这可以放在全局 /opt/keter/etc/keter-config.yaml
文件中,它将指定要传递给所有应用程序的环境变量。