0


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.7environment:- 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.7environment:- MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ
    restart: on-failure
    ports:- 3306:3306volumes:- ./data:/var/lib/mysql
  1. docker-compose config 查看解析后的配置
[root@test mysql]# docker-compose configservices:mysql:environment:MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: liubei@2021
      TZ: Asia/Shanghai
    image: harbocto.xxx.com.cn/public/mysql:5.7ports:- 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.7environment:- MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE
      - TZ
标签: docker 容器 运维

本文转载自: https://blog.csdn.net/qq_55388189/article/details/127608467
版权归原作者 善良小茅 所有, 如有侵权,请联系我们删除。

“docker-compose环境变量”的评论:

还没有评论