Docker Compose 设置 SpringBoot应用配置参数
所属分类 docker
浏览量 13
springboot 配置参数设置三种方式
环境变量、命令行参数、外部配置文件
docker-compose.yml 里可配置,不需要重新打包镜像。
方式 1:使用环境变量(最推荐,简单通用)
Spring Boot 会自动读取环境变量
配置文件里:spring.datasource.url
环境变量:SPRING_DATASOURCE_URL(大写 + 下划线)
version: '3.8'
services:
myapp:
image: my-springboot-app:latest
ports:
- "8080:8080"
# 直接在这里写 Spring Boot 配置
environment:
# 服务器端口
- SERVER_PORT=8080
# 数据库连接
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/mydb
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123456
# Redis
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6306
# 日志级别
- LOGGING_LEVEL_COM_MYAPP=DEBUG
优点:一行一个配置,清晰、安全、不用挂载文件。
方式 2:命令行参数 --key=value(兼容所有版本)
直接在 command 里写 Spring Boot 启动参数:
services:
myapp:
image: my-springboot-app:latest
command:
- --server.port=8080
- --spring.datasource.url=jdbc:mysql://mysql:3306/mydb
- --spring.profiles.active=prod
等价于:
java -jar app.jar --server.port=8080 --spring.profiles.active=prod
方式 3:挂载外部 application.yml
把宿主机的配置文件直接覆盖容器内的配置,适合配置项非常多的场景。
宿主机创建 config/application.yml
在 compose 里挂载
yaml
services:
myapp:
image: my-springboot-app:latest
volumes:
# 宿主机路径 : 容器内路径
- ./config/application.yml:/app/config/application.yml
Spring Boot 会优先读取 /app/config/application.yml。
优先级
Spring Boot 配置生效顺序(高 → 低):
命令行参数 (command: --xxx)
环境变量 (environment)
外部挂载的 application.yml
打包在 jar 里的配置
总结
少量配置 → 用 environment
想完全控制启动命令 → 用 command
配置非常多 → 挂载 application.yml
上一篇
下一篇
Java应用镜像不同架构的区别
Docker Compose Java 应用 command 多行参数示例
Docker Compose 常用排查命令
springboot应用查看配置值及来源
springboot profile激活