Docker Установите переменные окружения в Ubuntu, нет доступа через php getenv. - PullRequest
0 голосов
/ 09 сентября 2018

Я создал контейнер Docker с базовым образом Ubuntu. Установка переменных среды через файл .env. При запуске контейнера я вижу, как переменные передаются через терминал оболочки.

Я хочу получить переменные env в моем wp-config. Я использую getenv, но он не работает ..

Любые предложения ..

Спасибо

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Вы используете .env файл, поэтому вы обязательно используете docker-compose. Если не использовать docker-compose, .env не будет действовать. И файл .env должен быть помещен в каталог, из которого запускается docker-compose.

Целое решение может быть что-то вроде:

.env

MY_VARIABLE=abc

докер-compose.yml

version: '3'
services:
  my_service:
    environment:
      - MY_VARIABLE="${MY_VARIABLE}"

сор-config.php

echo getenv('MY_VARIABLE');

Я полагаю, вы не получили env, потому что вы не сделали - MY_VARIABLE="${MY_VARIABLE}" в docker-compose.yml, значение в .env не будет автоматически действовать как переменная окружения для контейнера, вам нужно обработать его в файле compose. FYI.

Деталь относится к официальному справочнику

0 голосов
/ 12 сентября 2018

В обоих предыдущих ответах я уже мог передавать переменные env в мою среду apache, обслуживаемую docker. Мне просто нужно было добавить Pass env_name в файл .htaccess для каждой переменной env.

Затем я могу получить значения через $ SERVER ['env_name'] в моем приложении php.

0 голосов
/ 09 сентября 2018

Вы можете установить переменную окружения для вашего Docker-контейнера двумя способами

  1. В команде запуска Docker используйте docker run -e VARIABLE=VALUE ...
  2. В файле docker-compose вы можете установить следующее:

      environment:
        - DEBUG=1
    

    https://docs.docker.com/compose/environment-variables/#set-environment-variables-in-containers

...