问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Spring Boot + Docker环境变量配置详解

创作时间:
作者:
@小白创作中心

Spring Boot + Docker环境变量配置详解

引用
CSDN
1.
https://blog.csdn.net/xiaoguangtouqiang/article/details/83540853

在Spring Boot项目中,如何通过Docker配置不同环境的环境变量是一个常见的需求。本文将详细介绍在开发环境、Gradle打包以及Docker打包等不同场景下如何进行环境变量的配置。

开发环境IDE配置

在开发环境中,可以通过IDE的环境变量参数进行配置。例如,在IntelliJ IDEA中,可以按照以下方式配置:

这样配置后,项目启动时就会使用application-test.yml中的配置。

Gradle打包配置

通过Gradle打包时,可以使用-P参数来指定打包后的JAR使用哪种环境配置。例如:

gradlew -Pprod bootWar

对于JHipster生成的项目,如果需要添加test环境配置,需要修改项目的Gradle文件。具体步骤如下:

  1. build.gradle中添加新的环境属性配置:

  1. 创建profile_test.gradle文件,可以复制prod的配置并修改相关参数:
def profiles = 'test'
  1. processResources任务中添加环境变量替换逻辑:
processResources {
    filesMatching('**/application.yml') {
        filter {
            it.replace('#project.version#', version)
        }
        filter {
            it.replace('#spring.profiles.active#', profiles)
        }
    }
}

Docker打包配置

使用Docker Compose打包应用时,可以通过环境变量参数进行配置。这个参数会覆盖Gradle中的参数配置。例如:

docker-compose up -d --build

同时,还可以通过以下方式配置Docker环境变量:

  1. 在Dockerfile中设置启动命令:
CMD ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.profiles.active=dev", "-jar", "rest-api.jar"]
  1. 在运行Docker镜像时通过命令行参数加载环境变量:
docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" --name rest-api dockerImage:latest

通过以上几种方式,可以灵活地在不同场景下配置Spring Boot应用的环境变量,确保应用在不同环境中的正确运行。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号