我在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
的值?
答案 0 :(得分:1)
您可以在部署配置环境变量上设置自己,为其提供将持久卷装入容器的路径。那或只是编写应用程序代码的路径。
这假设您确实将持久卷安装到容器中。仅仅提出索赔是不够的,它确实需要与应用程序相关联。
另请注意,如果使用OpenShift Online,当前存储类型只能与非扩展应用程序一起使用,并且您无法使用滚动部署。因此,请确保将部署的部署策略从Rolling
更改为Recreate
,并且不要扩展您的应用程序。