Exponer variables de entorno a Apache y PHP

Fondo

Intento utilizar Wercker para ejecutar mi testing para una aplicación PHP. Wercker usa contenedores Docker para configurar un entorno de testing para ejecutar testings. Utiliza variables de entorno para exponer los parameters de connection para cualquier service conectado como MySQL y Elasticsearch. Ejemplo MYSQL_PORT_3306_TCP_ADDR = 127.0.1.1

Mis contenedores Docker básicos están ejecutando Ubuntu 14.04 con PHP y Apache ya instalados en el contenedor.

Problema

Parece que no puedo acceder a las variables de entorno a través de php $ _SERVER o $ _ENV cuando se ejecuta a través de Apache. Funciona bien si ejecuto el script a través de CLI php ./db_connect.php o si ejecuto PHP usando su compilation en el server php -S localhost:8000 . Sin embargo, si bash acceder a una página a través del host virtual Apache, las variables de entorno no están disponibles.

Progreso

Configuré Apache con el mod usado para permitir las variables ambientales "Creo"

 sudo a2enmod env sudo service apache2 restart 

Estoy tratando de acceder a las variables de entorno en mi script.

 $database_host = $_SERVER["MYSQL_PORT_3306_TCP_ADDR"]; $database_username = $_SERVER["MYSQL_ENV_MYSQL_USER"]; $database_password = $_SERVER["MYSQL_ENV_MYSQL_PASSWORD"]; $database_name = $_SERVER["MYSQL_ENV_MYSQL_DATABASE"]; $elasticsearch_host = $_SERVER["ELASTICSEARCH_PORT_9300_TCP_ADDR"]; 

Puedo agregar nuevas variables en mi .htaccess, simplemente no obtengo todas las variables ambientales del sistema.

 SetEnv TEST_VAR test 

He leído esta pregunta ¿Cómo get las variables de entorno del sistema en PHP al ejecutar CLI y Apache2Handler? pero no estoy seguro de lo que está sugiriendo hacer.

Pregunta

¿Cómo expongo las variables del entorno del sistema a Apache y PHP?

Con docker-compose puede recuperar las variables de entorno del sistema operativo establecidas con la opción de environment del file docker-compose.yml a través de la variable $_ENV php.

 version: 2 services: web: build: php:5.6-apache environment: MYSQL_USER: "user" MYSQL_PASSWORD: "passwd" 

debería darte

 $_ENV['MYSQL_USER'] = user $_ENV['MYSQL_PASSWORD'] = passwd 

No estoy seguro de cómo Wercker asigna las variables de entorno a los contenedores, pero hay un problema abierto que creo que podría ayudar https://github.com/wercker/wercker/issues/63