我应该如何使环境变量可用于我的web应用程序



操作系统:Ubuntu 20.04 LTS

我正试图使用Keter部署一个网络应用程序,该应用程序取决于几个环境变量,我似乎很难让这些变量可用。

作为参考,我一直在使用Ubuntu社区的资源来尝试解决这个问题。

我在/etc/environment中添加了环境变量,文件如下:

PATH=...
MY_VAR="something"
MY_VAR2="something-else"

运行echo $MY_VAR正确打印something

我在前面提到的资源中读到,环境变量是";未绑定";当使用CCD_ 4。当使用top时,我可以看到keter进程作为root运行,所以我认为这可能是问题所在,所以我按照使用sudo visudo的说明更改了/etc/sudoers。我在文件底部添加了Defaults env_keep += "MY_VAR MY_VAR2"行。

我重新启动了服务器,以确保所有内容都被重新读取,并可以确认echo $MY_VARsudo echo $MY_VAR都产生了正确的结果。

不幸的是,这似乎对web应用程序没有影响,因为日志仍然显示以下错误: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"

并完全取消CCD_ 17设置。

或者,它可以放在全局/opt/keter/etc/keter-config.yaml文件中,在那里它将指定要传递给所有应用程序的环境变量。

最新更新