首页  

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激活