Jelastic - как получить переменные окружения в Docker-контейнер
Как заставить заполнители среды отображаться в контейнере Docker?
Документация не совсем ясна, где их можно использовать. Я попытался просто установить те, что внутри env узла, как показано в файле JPS, который добавляется к этому вопросу.
Например, он показывает окружающую среду как env-2461411
и его имя как Environment Test
в опциях среды
После запуска среды заполнители остаются в том виде, в котором они отображаются в файле JPS, и не заменяются фактическими значениями.
Результат
Заполнители, похоже, не заменяются, и поэтому оболочке не нравится окружение, которое она получает:
-bash: ${env.appid}: bad substitution
-bash: ${env.displayName}: bad substitution
-bash: ${env.domain}: bad substitution
-bash: ${env.envName}: bad substitution
-bash: ${env.name}: bad substitution
-bash: ${env.shortdomain}: bad substitution
-bash: ${env.url}: bad substitution
-bash: ${env.appid}: bad substitution
-bash: ${env.displayName}: bad substitution
-bash: ${env.domain}: bad substitution
-bash: ${env.envName}: bad substitution
-bash: ${env.name}: bad substitution
-bash: ${env.shortdomain}: bad substitution
-bash: ${env.url}: bad substitution
Ожидаемый результат
Переменные среды, отображаемые в среде bash, такие как
env_domain=env-2461411
env_name=Environment Test
Пример файла JPS
{
"jpsType": "install",
"jpsVersion": "1.4",
"name": "Environment Test",
"description":
{
"text": "Template for testing environment variables test",
"short": "Environment variables test"
},
"logo": "https://raw.githubusercontent.com/jelastic-jps/start-stop-scheduler/master/images/logo.png",
"homepage": "https://jelastic.com/",
"categories":
[
"apps/testing"
],
"success":
{
"text": "## Environment test is up and running\nOpen the Jelastic SSH gateway and locate the test-node, see its environment with `env`"
},
"nodes":
[
{
"image": "debian",
"extip": false,
"count": 1,
"cloudlets": 16,
"fixedCloudlets": 1,
"nodeType": "docker",
"nodeGroup": "test",
"displayName": "test-node",
"volumes":
[
"/root"
],
"env":
{
"env_appid": "${env.appid}",
"env_domain": "${env.domain}",
"env_url": "${env.url}",
"env_displayname": "${env.displayName}",
"env_envname": "${env.envName}",
"env_name": "${env.name}",
"env_shortdomain": "${env.shortdomain}"
}
}
],
"onInstall":
{
"log": "${placeholders}"
}
}
1 ответ
В процессе создания среды указанные заполнители не инициализируются и не могут быть использованы. Вы можете использовать метод AddContainerEnvVars. В вашем случае так будет.