Docker组成variables
我有一个docker撰写的问题,我想使用内部conainervariables来创build另一个variables:
myapp: image: image depends_on: - anotherimage environment: - "VAR1=var1" - "VAR2=${HOSTNAME}_${VAR1}"
我在VAR2中得到的是Docker引擎主机的主机名,而对于VAR1则没有
我想有这样的东西:
39ed52c98e92_var1
Docker-compose从运行docker-compose
命令的环境中parsing组合文件中的variables,而不是从容器内部parsing。 如果您想从容器内部configuration您的环境,则需要将其添加到容器运行的命令或入口点。 如果您还没有入口点,则可以创build一个:
#!/bin/sh export VAR2=${HOSTNAME}_${VAR1} exec "$@"
要使用它,你的Dockerfile会有两行额外的代码:
COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]
运行docker build
之前,请确保chmod 755 entrypoint.sh
。
编辑:VAR1不解决你的XML里面是一个类似的问题。 每个variables都由容器的docker-compose定义,但不会更改docker-compose正在使用的主机上的环境。 所以你不能在yml的后面的行上使用这个variables。