Attualmente utilizzando Elean Beanstalk per eseguire i contenitori Docker, ho bisogno di passare informazioni importanti come variabili di ambiente ai miei contenitori.Passare le variabili di ambiente ai contenitori Docker
Il mio attuale Dockerrun.aws.json assomiglia a questo:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "b2boost/rabbitelasticdockstash",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "80"
}
],
"environment": [
{
"name": "RABBITMQ_HOST",
"value": "RABBITMQ_HOST"
},
{
"name": "RABBITMQ_PASSWORD",
"value": "RABBITMQ_PASSWORD"
},
{
"name": "RABBITMQ_USER",
"value": "RABBITMQ_USER"
},
{
"name": "RABBITMQ_VHOST",
"value": "RABBITMQ_VHOST"
},
{
"name": "ELASTICSEARCH_HOST",
"value": "ELASTICSEARCH_HOST"
},
{
"name": "ELASTICSEARCH_PASSWORD",
"value": "ELASTICSEARCH_PASSWORD"
},
{
"name": "ELASTICSEARCH_PORT",
"value": "ELASTICSEARCH_PORT"
},
{
"name": "ELASTICSEARCH_PROTOCOL",
"value": "ELASTICSEARCH_PROTOCOL"
},
{
"name": "ELASTICSEARCH_USER",
"value": "ELASTICSEARCH_USER"
}
],
"Volumes": [
],
"Logging": "/var/log/eb-activity.log"
}
Questo non funziona comunque. Quando a collegarsi con SSH al mio esempio beanstalk quindi ottenere il contenuto delle variabili di ambiente, posso vedere che essi non sono stati inizializzati:
[[email protected] ~]$ sudo docker exec goofy_curie env
PATH=/opt/logstash/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin
HOSTNAME=HOSTNAME
LANG=C.UTF-8
JAVA_VERSION=7u79
JAVA_DEBIAN_VERSION=7u79-2.5.5-1~deb8u1
LOGSTASH_MAJOR=1.5
LOGSTASH_VERSION=1:1.5.1-1
HOME=/root
Come si possono impostare le variabili di ambiente nei miei contenitori? Il Dockerrun.aws.json non sembra funzionare per me.
Hai provato questa opzione: http://stackoverflow.com/questions/28298101/elastic-beanstalk-environment-variables -per-docker-host? –
Se non si desidera conservare le informazioni su VCS, è possibile utilizzare la console Web. Funziona bene per i miei ambienti dockerizzati. http://stackoverflow.com/a/17878600/1102395 – Samar