如何向OpenShift环境变量添加私人信息?

drz*_*zax 13 environment-variables openshift

数据库连接字符串或密码等身份验证信息几乎不应存储在版本控制系统中.

看起来为OpenShift上托管的应用程序指定环境变量的唯一方法是将它们提交到Git存储库.有一个关于这个的OpenShift论坛的讨论,但问题没有有用的建议解决方案.

我可以使用另一种方法将身份验证信息添加到我的应用程序而无需将其提交到存储库吗?

Mar*_*len 27

SSH到您的应用程序并导航到您的数据目录

cd app-root/data
Run Code Online (Sandbox Code Playgroud)

在此目录中创建一个包含变量的文件(例如".myenv"),其内容类似于

export MY_VAR="something"
Run Code Online (Sandbox Code Playgroud)

然后在".openshift/action_hooks/pre_start"的存储库中添加此行

source ${OPENSHIFT_DATA_DIR}/.myenv
Run Code Online (Sandbox Code Playgroud)


jba*_*ndi 18

Openshift现在支持使用rhc命令行工具设置环境变量,如下所示:

rhc set-env HEROKU_POSTGRESQL_DB_URL='jdbc:postgresql://myurl' -a myapp
Run Code Online (Sandbox Code Playgroud)

我认为那比其他答案更容易......

请参阅:https://blog.openshift.com/taking-advantage-of-environment-variables-in-openshift-php-apps/


小智 5

添加.openshift/action_hooks/pre_start_*并不是很酷,因为除了通过SSH添加文件之外,还必须修改存储库.

对于nodejs,编辑nodejs/configuration/node.env工作好几天,但我经历过多次恢复文件.所以它不稳定.

我找到了一个更好的解决方案.

echo -n foobar > ~/.env/user_vars/MY_SECRET

这非常有效.

(也许这是做什么的rhc set-env ...?)

希望这可以帮助!