2016-02-18 4 views
3

Я хочу показать env var в контейнере докера. PHP-скрипт выглядит следующим образом:Переменная окружения в контейнере PHP-докеров

<html> 
<head> 
    <title>Show Use of environment variables</title> 
</head> 
<body> 
    <?php 
    print "env is: ".$_ENV["USER"]."\n"; 
    ?> 
</body> 
</html> 

Я использую OpenShift начать контейнер. PHP - контейнер показывает:

env is: 

Теперь я изменяю постоянного конфиг моего контейнера:

oc env dc/envar USER=Pieter 
deploymentconfig "envar" updated 

Когда я получить доступ к контейнеру. Окр вар ПОЛЬЗОВАТЕЛЯ является Pieter

docker exec -it 44a0f446ae36 bash 
bash-4.2$ echo $USER 
Pieter 

Но мой сценарий остается показывая: «env is:» Это не заполняет переменную.

+0

Что показывает журнал? – Auzias

ответ

-1

Изменить

print "env is: ".$_ENV["USER"]."\n"; 

в

print "env is: ".getenv("USER")."\n"; 

.

/# cat test.php 
<html> 
<head> 
    <title>Show Use of environment variables</title> 
</head> 
<body> 
    <?php 
    print "env via \$_ENV is: ".$_ENV["USER"]."\n"; 
    print "env via getenv is: ".getenv("USER")."\n"; 
    ?> 
</body> 
</html> 
/# 
/# export USER=Sascha 
/# echo $USER 
Sascha 
/# php test.php 
<html> 
<head> 
    <title>Show Use of environment variables</title> 
</head> 
<body> 
    PHP Notice: Array to string conversion in /test.php on line 7 
PHP Notice: Undefined index: USER in /test.php on line 7 
env via $_ENV is: 
env via getenv is: Sascha 
</body> 
</html> 
/# 
Смежные вопросы