Docker在Ubuntu中设置环境变量无法通过php getenv访问

时间:2018-09-09 14:20:07

标签: php apache docker

我用Ubuntu基础映像创建了一个Docker容器。通过.env文件设置环境变量。运行容器时,我可以看到使用Shell终端传递的变量。

我希望能够在我的wp-config中获得env变量。我正在使用getenv,但无法正常工作。

任何建议。

谢谢

3 个答案:

答案 0 :(得分:0)

您可以通过两种方式为Docker容器设置环境变量

  1. 在docker run命令中使用docker run -e VARIABLE=VALUE ...
  2. 在docker-compose文件中,您可以像这样设置:

      environment:
        - DEBUG=1
    

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

答案 1 :(得分:0)

您使用type submitTxResp struct { TxID *bc.Hash `json:"tx_id"` } 文件,因此您当然使用TxID。如果不使用.env,则docker-compose无效。并且.env文件必须放在运行docker-compose的目录中。

整个解决方案可能是这样的:

.env

.env

docker-compose.yml

docker-compose

wp-config.php

MY_VARIABLE=abc

我想您没有得到env,因为您没有在version: '3' services: my_service: environment: - MY_VARIABLE="${MY_VARIABLE}" 中进行echo getenv('MY_VARIABLE'); - MY_VARIABLE="${MY_VARIABLE}"中的值将不会自动充当容器的环境变量,您需要在撰写文件中处理它。仅供参考。

详细信息是指官方guide

答案 2 :(得分:0)

以上两个答案,我都可以将env变量传递给docker服务的apache环境。我只需要为每个env变量将Pass env_name添加到.htaccess文件。

然后我可以通过我的php应用程序中的$ SERVER ['env_name']获取值。