Но почему мои изменения, сделанные через 'heroku ps: exec`, не вступили в силу? - PullRequest
0 голосов
/ 06 июля 2019

Я знаю, что у Heroku эфемерная файловая система:

У каждого 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...