docker compose中interplation和environment variables使用指定文件配置时的区别

docker compose中interplation和environment variables使用指定文本配置文件时的区别

此文档重点阐述interplation和envrionment variables在docker compose中分别要指定文本文件时的区别,期望读者具有基本的docker compose配置基础,本文经过本人实际验证,使用Docker Compose version v2.27.3。

如果将interplation的替换用变量值(如webapp-image=webapp:1.0)与环境变量(如POSTGRES_PASSWORD=mypasswd)放在同一个文本文件中作为配置而混用的话,会出现与你设想的不一样的结果(诸如WARN[0000] The “webapp-image” variable is not set. Defaulting to a blank string.之类的报错)。

interplation setup

关于什么是interplation的详细说明请自行搜索官方的文档,实际上就是docker-compose.yml中变量替换的功能,变量替换与引用环境变量不是一个东西。

docker compose中要指定文本文件配置来使用interplation功能时,要在命令行上加上–env-file来指定文本文件配置,马上会看到。

  • docker-compose.yml文件内容示例:
services:
  webapp:
    image: ${webapp-image} # 此处是interplation功能
  • 用来存储替换用变量键值对的文本文件如下:
# .interplations/.interplation.dev
webapp-image=webapp:1.0
  • 命令行加载文件的方式:
docker-compose --env-file .interplations/.interplation.dev up
docker-compose --env-file .interplations/.interplation.prod up
  • 验证方式
docker-compose config

会看到打印为

services:
  webapp:
    image:webapp-image:1.0

environment variables setup

docker compose中如果想在其他指定的文本文件中设置环境变量而不是在environment attribute中设置环境变量,应该在docker-compose.yml此文件内部指定env_file attribute,如

services:
  webapp:
    image: ${webapp-image} # 此处是interplation功能
    env_file: # 此处是environment variables使用文本文件配置来加载的功能
      - .envs/.env.dev

以上便是它们之间的区别的说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值