在docker-compose中,我可以使用环境变量来构造另一个环境变量吗? 例如:
?- pick(r, [[q,1,3], [q,9,7], [r,3,2], [r,8,7]], Z).
Z = [[r, 3, 2], [r, 8, 7]] .
?- pick(q, [[q,1,3], [q,9,7], [r,3,2], [r,8,7]], Z).
Z = [[q, 1, 3], [q, 9, 7]] .
如果有可能-那么我该如何实现?
答案 0 :(得分:1)
TL;灾难恢复:否
docker-compose docs explain this too here
docker-compose
是一种编写docker run ...
命令的好方法(如果我输入错了,可以纠正我吗?)。因此,一个简单的测试告诉我,只有在开发环境中存在该环境变量时,您才能在docker-compose
中使用另一个环境变量创建一个环境变量。
所以
environment:
- HOST: localhost
- WITH_PORT: ${HOST}:8080 #host read from env variable above
在这里,HOST
必须存在于您的环境中而不是容器环境中(这可能不是您想要的)。
~ $ 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