Как переменные из .env файла для Docker-а попадают в $_ENV?

Имеется проект на PHP в виде git-репозитория.

Его предлагается разворачивать через докер.
В конфигах докера там дефолтные настройки, проект открывается на localhost.
Конфиг.php в проекте использует данные из $_ENV, который при запуске через докер магически оказывается заполненным нужным данными из .env - файла.

Одна только загвоздка.
Конфиги менять запрещено.
Но мне это неудобно.
У меня на машине линукс (lamp и вот это всё) и развернуть тот же проект без использования докера, со своим хост-неймом мне лично немного проще и быстрее и удобнее для разработки. И localhost у меня занят другим.

Добавлять в проект какую-то из библиотек типа "Dot Env" для обработки .env-файла я не имею права.
И в проекте такой точно нет.

Так как мне сделать чтобы без запуска проекта через докер у меня $_ENV оказался магически заполнен данными из .env-файла (без добавления дополнительных библиотек и файлов в проект для обработки .env ) ?
Как оно в контейнере происходит?
  • Вопрос задан
  • 536 просмотров
Пригласить эксперта
Ответы на вопрос 2
profesor08
@profesor08 Куратор тега PHP
Написано же что это и откуда берется
https://www.php.net/manual/ru/reserved.variables.e...
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Тамара Ламова Тамара Ламова Автор вопроса
Просто добавила в /etc/apache2/envvars , перезагрузила апач.
Сработало.


apache - SetEnv
httpd.apache.org/docs/current/mod/mod_env.html#setenv
например поместить в .htaccess
SetEnv SPECIAL_PATH /example/test
SetEnv APPLICATION_ENV production


nginx - fastcgi_param
https://nginx.org/ru/docs/http/ngx_http_fastcgi_mo...
location / {
...
   fastcgi_param   APPLICATION_ENV  production;
   fastcgi_param   SPECIAL_PATH  /example/test;
...
}


cli
https://linuxize.com/post/how-to-set-and-list-envi...
env APP_NAME=MyAPP php -r 'var_dump(getenv("APP_NAME"));'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы