我有一个泊坞容器:
services:
php-fpm:
build:
context: ./docker/php-fpm
volumes:
- ./symfony:/home/home
container_name: php
ports:
- "9004:9001"
networks:
- local
working_dir: /home/home
environment:
- DATABASE_HOST=test
- DATABASE_PORT=
- DATABASE_NAME=test
我做了:
当我刷新页面时,我得到:Environment variable not found: "DATABASE_HOST".
。我不明白的问题是什么。我花了很多时间分析这个问题。你对此有所了解吗? Thx提前。顺便说一下,docker inspect
我看到所有这些环境变量已分配。
答案 0 :(得分:1)
我自己遇到了这个问题。您必须在php-fpm.conf中显式映射您想要访问php / symfony的环境变量,如:
[www]
env[MY_ENV_VAR_1] = 'value1'
env[MY_ENV_VAR_2] = 'value2'
然而,这似乎不适用于来自主机的实际环境变量!
这里有一个很长的讨论(连同几个,在我看来,这个问题的艰苦解决方法:https://groups.google.com/forum/#!topic/docker-user/FCzUbjTIp_0
我已经在pool.d配置文件中成功完成了它,如下所示:
env[DATABASE_HOST] = $DATABASE_HOST
env[DATABASE_PORT] = $DATABASE_PORT
env[DATABASE_NAME] = $DATABASE_NAME
我只是将其作为docker文件的一部分添加:
ADD fpm/app.pool.conf /etc/php5/fpm/pool.d/
答案 1 :(得分:1)
如果您是从官方PHP Docker映像扩展而来的,它将为您设置clear_env = no
,也可以在映像的池配置中自行设置。
这是官方映像中的line adding clear_env = no。您只需要将其添加到FPM池配置中即可,或者您可以按Robert的意愿将它们一个接一个地添加。