2017-04-13 32 views
0

我试图使用.env文件来使环境变量,但它不起作用。.env文件可以创建环境变量吗?

这是我的步骤:

version "3" 
services: 
    web: 
    image: php-fpm:5.6.30 
    env_file: 
     - .env 

这是.ENV文件

TEST_ENV="HELLO WORLD" 

当我开始容器它不工作:

var_dump(getenv("TEST_ENV")); // output NULL 

回答

0

对于我来说,似乎上班。也许这可以帮助你:

├── docker-compose.yaml 
├── .env 
└── myphp 
    ├── Dockerfile 
    └── script.php 

我.ENV文件

TEST_ENV="HELLO WORLD" 

docker-compose.yaml

version: "3" 
services: 
    web: 
    build: ./myphp 
    env_file: .env 

所以我docker-compose.yaml将建立图像myphp。该dockerfile看起来是这样的:

FROM php:5.6.30-fpm 
COPY script.php /var/script.php 

script.php

<?php 
var_dump(getenv('TEST_ENV')); 

exit; 

比我执行docker-compose up -d --build。这将构建我的图像,并在其中添加php脚本,它将运行该图像的容器实例。

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
15f0289bfbe8  test_web   "docker-php-entryp..." 3 seconds ago  Up 1 second   9000/tcp   test_web_1 

我访问我的容器

$ docker exec -it 15f0289bfbe8 bash 

而且我要去的地方,我已经把我的脚本(检查dockerfile)的的/var文件夹,我exexcuting它也只是+印花env var:

[email protected]:/var/www/html# cd /var/ 
[email protected]:/var# ls 
backups cache lib local lock log mail opt run script.php spool tmp www 
[email protected]:/var# php -f script.php 
string(13) ""HELLO WORLD"" 
[email protected]:/var# echo $TEST_ENV 
"HELLO WORLD" 
[email protected]:/var# 
相关问题