Openshift 3缺少OPENSHIFT_DATA_DIR环境变量(node.js)

时间:2017-09-19 16:46:18

标签: node.js openshift

我在openshift上运行了一个node.js应用程序,我想添加一个存储卷。

使用唯一的UI我已经创建了持久性卷声明,并使用“添加存储”按钮在我的部署下添加了该卷。

因为我的应用程序依赖于访问此存储,所以我的node.js代码中包含以下内容:

if (!('OPENSHIFT_DATA_DIR' in process.env)) {
    console.log(process.env);
    throw new Error('Can\'t access data directory');
}

部署时会抛出此错误,在查看console.log(process.env)的输出时,似乎没有任何环境变量描述持久存储的路径。

如何获取process.env.OPENSHIFT_DATA_DIR的值?

1 个答案:

答案 0 :(得分:1)

您可以在部署配置环境变量上设置自己,为其提供将持久卷装入容器的路径。那或只是编写应用程序代码的路径。

这假设您确实将持久卷安装到容器中。仅仅提出索赔是不够的,它确实需要与应用程序相关联。

另请注意,如果使用OpenShift Online,当前存储类型只能与非扩展应用程序一起使用,并且您无法使用滚动部署。因此,请确保将部署的部署策略从Rolling更改为Recreate,并且不要扩展您的应用程序。