docker-compose环境变量
docker-compose环境变量
·
注意点
- env_file指定env文件中定义的变量只能在docker容器内部使用,.env文件的变量可以在docker-compose中使用
- 如果想要自定义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文件
-
在docker-compose.yml同级目录下面创建.env文件
value不要加引号,引用会自动添加
-
在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
- 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条内容
所有评论(0)