docker-compose环境变量

参考文档

注意点

  1. env_file指定env文件中定义的变量只能在docker容器内部使用,.env文件的变量可以在docker-compose中使用
  2. 如果想要自定义env文件名称,需要在docker-compose --env-file image.env 参数中指定

docker-compose.yml定义变量直接

    environment:
      KEV: VELUE
      KEV: VELUE
    environment:
    - KEV=VELUE
    - KEV=VELUE

案例:

version: '3'
services:
  db:
    image: 'docker.io/mysql:latest'
    environment:
      MYSQL_ROOT_PASSWORD: "liubei@2021"
      MYSQL_USER: 'liubei'
      MYSQL_PASSWORD: 'liubei@2021'
      MYSQL_DATABASE:  'liubeidb'


version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=liubei@2021
      - MYSQL_DATABASE=liubeidb
      - TZ=Asia/Shanghai

.env文件引入外部

容器启动中需要用到的变量,可以在.env文件中定义

引用当前目录下的env文件
  1. 在docker-compose.yml同级目录下面创建.env文件value不要加引号,引用会自动添加

  2. 在docker-compose.yml中使用使用key引入

version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ
    restart: on-failure
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql


  1. docker-compose config 查看解析后的配置
[root@test mysql]# docker-compose config
services:
  mysql:
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7
    ports:
    - 3306:3306/tcp
    restart: on-failure
    volumes:
    - /usr/local/mysql/data:/var/lib/mysql:rw
version: '3.1'

引用指定目录下的env文件

注意:这种方式定义的变量无法在compose文件种类使用

env_file:
	- ./test.env

解决方案:指定参数
docker-compose --env-file=XXXX -f docker-compose.yml up

变量的两种用途

前置: 向.env中添加 PORT_MYSQL=3306

docker-compose.yml使用

直接通过${XXX}来引用.env的值

version: "3.1"
services:
  mysql:
    ports:
      - $PORT_MYSQL:3306
container使用

直接在environment处写上.env中的key

version: "3.1"
services:
  mysql:
    image: harbocto.xxx.com.cn/public/mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值