参考:
https://docs.docker.com/compose/compose-file/compose-file-v3/#compose-file-v34-and-under
https://docs.docker.com/compose/compose-file/compose-file-v3/#env_file
第一步:定义自己的参数,在myEnv.env 或 .env的文件中,内容格式示例:
mysql_url=jdbc:mysql://local:3306/sample?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
mysql_username=root
mysql_password=WeLoveDocker
.经验证,变量名不能使用 短杠-。
第二步:在docker-compose.yml文件中,
第一种方式,使用env_file的配置项,配置 myEnv.env 文件传入,myEnv.env 文件与docker-compose.yml文件,在同级目录下。示例:
services:
sample:
restart: always
container_name: sample
image: openjdk:8-jre
env_file:
- myEnv.env
第二种方式,使用environment配置顶传入,其中${mysql_url}的值,定义在.env文件中,与docker-compose.yml文件,在同级目录下。示例:
services:
sample2:
restart: always
container_name: sapmle2
image: openjdk:8-jre
environment:
TZ: "Asia/Shanghai"
mysql_url: "${mysql_url}"
mysql_username: "${mysql_username}"
mysql_password: "${mysql_password}"
第三步:在docker容器里跑的sprign项目,就可以使用由docker-compse传入的环境变量了。
/src/main/resources/application.yml示例:
spring:
datasource:
url: ${mysql_url}
username: ${mysql_username}
password: ${mysql_password}