Настройте php-fpm для доступа к переменным среды в докере

Я запускаю php7-fpm в контейнере докера. Однако мои скрипты php не могут получить доступ к переменным среды, установленным в моем файле docker-compose. getenv ('MY_ENV_VAR') возвращает FALSE .

Я изменил /etc/php/7.0/fpm/pool.d/www.conf включить clear_env = no и перезапустить с помощью службы php7. 0-fpm restart , но мои переменные окружения start отсутствуют.

Я также пробовал отредактировать /etc/php/7.0/fpm/php.ini, включая строку variables_order = "EGPCS" .

Когда я выполняю команду в своем контейнере в оболочке bash, я вижу, что мои переменные существуют. Просто они недоступны в моих php-скриптах.

Что мне не хватает?

4
задан 5 November 2016 в 14:55
2 ответа

Ну, это кажется неправильным, но я добился его работы, добавив переменные среды в сценарий bash -

#!/bin/bash    
echo "" >> /etc/php/7.0/fpm/pool.d/www.conf # new line.
if ! [ -z "$MY_ENV_VAR" ]
then
    echo "env[MY_ENV_VAR] = $MY_ENV_VAR;" >>  /etc/php/7.0/fpm/pool.d/www.conf
fi

Затем в моем файле Docker -

COPY add_env_vars.sh /add_env_vars.sh
CMD source /add_env_vars.sh && service php7.0-fpm start

Похоже, что php-fpm просто не работает с системными переменными среды.

Для получения дополнительной информации см. -

2
ответ дан 3 December 2019 в 03:54

Это розыгрыш PHP-FPM.

  • Установите clear_env = no на /etc/php/7.2/fpm/pool.d/www.conf , поэтому;

В Dockerfile запустите de php-fpm с init.d , не используйте службу .
Пример:

CMD /etc/init.d/php7.2-fpm start && nginx -g 'daemon off;'

Проверить переменные среды сейчас

0
ответ дан 3 December 2019 в 03:54

Теги

Похожие вопросы