Linux入门教程:docker compose文件参考(4) – 变量替换,compose使用d
Linux入门教程:docker compose文件参考(4) – 变量替换,compose使用d
配置项可以包含环境变量。compose使用docker-compose运行所在的shell环境的变量值。例如,假设shell包含环境变量EXTERNAL_PORT=8000且配置中引用了此变量:
web: build: . ports: - "${EXTERNAL_PORT}:5000"当使用此配置插docker-compose run命令时,compose在shell中查找EXTERNAL_PORT环境变量并使用其值替换此配置文件中对应的占位符。在这个示例中,在创建web容器之前,compose解析端口映射为8000:5000。
如果环境变量没有设置,compose使用空字符替换。在上面的示例中,如果EXTERNAL_PORT没有设置,端口映射的值为:5000(是一个无效的端口映射,创建容器时会导致错误)。
可以使用.env文件为环境变量设置默认的值。在shell环境中设置的值会覆盖在.env文件设置的值。
$ unset EXTERNAL_PORT $ echo "EXTERNAL_PORT=6000" > .env $ docker-compose up # EXTERNAL_PORT will be 6000 $ export EXTERNAL_PORT=7000 $ docker-compose up # EXTERNAL_PORT will be 7000$VARIABLE和${VARIABLE}两种写法都支持。如果使用的是2.1文件格式,还可以在一行中设置默认的值:
${VARIABLE:-default}:当VARIABLE没有设置或为空值时使用default值。 ${VARIABLE-default} :仅当VARIABLE没有设置时使用default值。其它的shell风格的扩展功能,如${VARIABLE/foo/bar}不支持。
可以使用双美元符号来转义美元符号,即阻止compose解析为值。
web: build: . command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"
评论暂时关闭