我已经开始研究托管 OpenShift Online 的小型 Discord 机器人,并且我已经到了尝试跨部署持久化数据的地步。据我所知,我应该能够创建持久卷,声明它并将其安装在我的部署配置中,然后能够读取和写入它。
不过,我终其一生都无法解决权限问题。我找到的最接近的答案是将 OPENSHIFT_DATA_DIR 环境变量设置为已安装卷的目录,如此处相切讨论,但在尝试写入该目录时仍然被拒绝访问。
存储库:https ://github.com/Solesaver/Alfred-Discord-Bot
部署配置文本转储:https ://dumptext.com/RBDbnfcP
我已经创建了一个持久卷并使用 Access Modes Read-Write-Once 声明,部署配置已将其安装在 /data 中以读写模式。我在部署环境中添加了一个名为 OPENSHIFT_DATA_DIR 和值 /data 的变量。
到目前为止,无论我尝试过哪种组合,当我点击 bot.js 的第 123 行时,我总是以拒绝访问而告终:
fs.writeFileSync(howmanyPath, JSON.stringify(howmanyObj, null, 4), 'utf8');
归根结底,我真正需要弄清楚的是如何指定任意用户 OpenShift 启动我的应用程序的目录,因为它具有读/写权限。我很确定一旦我弄清楚我可以将持久卷安装到最终的任何东西上。