Изменение переменных ENV во время выполнения - PullRequest
1 голос
/ 29 января 2020

Возможно ли ввести / изменить текущие переменные среды в уже загруженном и запущенном NodeJS процессе?

Предоставление интерфейса в приложении не является опцией, перезапуск также недопустим.

Процесс выполняется в контейнере docker, для которого требуется указать c NodeJS Версия.

РЕДАКТИРОВАТЬ: изменение должно быть сделано вне источника приложения, поэтому process.env.ENV_VAR = "new env" невозможно.

Ответы [ 2 ]

1 голос
/ 30 января 2020

Невозможно изменить env vars запущенного процесса. Это не уникально для NodeJS процессов. Это просто, как env vars работает на UNIX, как операционные системы. Переменные живут в адресном пространстве процесса. И хотя они, как правило, изначально размещаются в хорошо известном месте вблизи вершины стека, текущие переменные, вероятно, будут находиться по произвольному адресу в куче. Env vars намеренно приватны для каждого процесса. Поэтому, если программа не предоставляет API для изменения своих переменных, вы не можете изменять их, когда программа запущена.

0 голосов
/ 29 января 2020

Вам следует использовать хранилище redis, совместно используемое контейнерами, в котором хранится env.

repos node reis - redis прослушивать изменения

...