0

我通过访问测功机heroku run bash并制作了一个文件foo。但是,当我从我的应用程序中检查时,它仍然找不到foo. 因此,我通过尝试在 dyno 上安装 nginx 进行了更深入的研究,打开,我可以确认这些文件与通过 nginxautoindex访问的文件不同。heroku run bash这是为什么?如何将文件放入显示正在运行的进程的文件系统中。

4

1 回答 1

2

当您发出heroku run bash一个新的测功机时,会为此一次性创建一个新的测功机,并且您可以访问它。一旦您注销,您创建的任何文件都将“消失”,因为 Heroku 文件系统是短暂的。

这意味着每当创建新的测功机或重新启动测功机时,文件系统都会恢复到其本机状态。“本机”状态是您的 slug 中的内容——应用程序的“编译”版本——在您“git push”到 Heroku 之后由 build-pack 构建的任何内容。

如果您想要一个可用于所有 Dynos 的只读文件,请将其放在您的 slug 中(例如:通过将其包含在 git 中,但也可以使用不同的构建包),或者将其放在所有 dynos 都可以访问的地方(如共享数据库、Redis/Memcache 实例,或者最符合逻辑的:S3)。

于 2013-07-20T14:08:06.517 回答