Em docker-compose, posso usar a variável de ambiente para construir outra variável de ambiente? por exemplo:
environment:
- HOST: localhost
- WITH_PORT: ${HOST}:8080 #host read from env variable above
Se for possível - como posso consegui-lo?
TL; DR: NÃO
docs docker-compose explicam isso também aqui
docker-compose
é uma maneira sofisticada de escrever docker run ...
comandos (me corrija se eu estiver errado?). Portanto, um teste simples me diz que você pode criar uma variável de ambiente docker-compose
usando outra variável env apenas se essa variável estiver presente em seu ambiente de desenvolvimento .
Então,
environment:
- HOST: localhost
- WITH_PORT: ${HOST}:8080 #host read from env variable above
Aqui, HOST
precisa existir em seu ambiente e não no ambiente de contêiner (que provavelmente não é o que você deseja).
~ $ docker run -it -e c=${a} -e a=b ubuntu env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=4f27e057b515
TERM=xterm
c=
a=b
HOME=/root
~ $ docker run -it -e c=${PATH} -e a=b ubuntu env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=ba84596bfdf3
TERM=xterm
c=/usr/local/opt/bison/bin:/Users/username/anaconda3/bin:/Users/username/anaconda2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/opt/puppetlabs/bin:/usr/local/munki:/Applications/apache-maven-3.5.4/bin:/Users/username/opt/packages/cassandra/bin:/Users/username/bin
a=b
HOME=/root
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras