Postgres环境变量未在运行时加载,但出现在ssh中

时间:2015-01-15 20:57:51

标签: openshift

我正在通过"开始使用Openshift"指导尝试学习这些东西。我已经在我的python中成功添加并配置了一个postgres数据库。

如果我在齿轮上运行一个环境,我会看到数据库环境变量:

[]\> env |grep POSTGRESQL_DB
OPENSHIFT_POSTGRESQL_DB_HOST=x.x.x.x
OPENSHIFT_POSTGRESQL_DB_USERNAME=admindb
OPENSHIFT_POSTGRESQL_DB_PORT=5432

但是在我部署的代码中,我使用logging.error(os.environ)转储所有env变量,并且没有设置POSTGRESQL_DB变量。所有python似乎都正确加载。

我知道我可以手动设置这些变量,但由于这些变量由齿轮控制,它们可能会变得陈旧。文档意味着应该设置这些变量(它们在示例代码中使用)。

2 个答案:

答案 0 :(得分:1)

发现问题。

在说明中我们设置了hot_deploy标记(因此在提交代码更改时应用程序不会反弹)。说明中的下一步是添加postgres盒式磁带,但环境变量不会加载,直到重新启动盒式磁带。所以反弹应用程序,一切都很顺利。

谢谢, 莱恩

答案 1 :(得分:0)

您部署的代码是否在登录时使用相同的登录shell环境?

使代码看到通过一些非shell方法启动的shell环境变量的常见解决方案是通过登录shell启动它们。

例如:

/bin/bash -lc "/whatever/you/are/launching --args stuff"