操作系统: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_VAR
和sudo 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
文件中,在那里它将指定要传递给所有应用程序的环境变量。