但是为什么我通过`heroku ps:exec`所做的更改不生效?

时间:2019-07-06 01:51:37

标签: file heroku

我知道Heroku有一个临时文件系统:

  

每个dyno都有自己的临时文件系统,其中包含新的   最近部署的代码。在dyno的一生中   进程可以将文件系统用作临时暂存器,但不能   写入的文件对于任何其他dyno和   测功机停止时,所有写入的文件将被丢弃,或者   重新启动。例如,这种情况会在更换测功机时发生   到应用程序部署,大约每天一次   正常的动态管理。

但是当我需要在dyno中调试时,所做的更改根本不会反映出来。

复制步骤:

创建一些随机的dyno,然后对那些dyno ssh / exec:

$ heroku ps:exec
Running this command for the first time requires a dyno restart.
Do you want to continue? [y/n]: y
Initializing feature... done
Restarting dynos... done
Waiting for web.1 to start... done
Establishing credentials... done
Connecting to web.1 on ⬢ wiwi123...

这是当前文件内容。我们可以简单地curl证明请求

~ $ curl wiwi123.herokuapp.com
hello world

但是当我尝试更改它时

~ $ echo 'another' >> index.php

当前内容变为

~ $ cat index.php
hello world
another

不知何故,请求没有得到体现

~ $ curl wiwi123.herokuapp.com
hello world

我知道Heroku仍然引用此文件,因为如果我们删除/重命名它。它将得到反映。

~ $ mv index.php old.php
~ $ curl wiwi123.herokuapp.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.<br />
</p>
</body></html>

0 个答案:

没有答案