项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结:
1.开发环境ide中启动项目
可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如
这样就使用application-test.yml中的配置
2.通过gradle打包
可以通过-P参数来指定打包后的jar使用哪种环境来运行,比如
gradlew -Pprod bootWar
打包之后运行会使用prod中的配置;我的项目是jhipster生成出来的,现在需要添加test的环境配置,需求修改下项目的gradle文件,如下所示
添加一种属性配置,这里举例期间使用“aaatest”,这样打包测试环境的时候命令为:
gradlew -Paaatest bootWar
同时需要添加一个profile_test.gradle,可以拷贝一份prod的,然后修改下这个地方即可
def profiles = 'test'
具体的原理其实就是在打包的时候根据打包命令中的参数,判断当前是什么环境,如果是test环境,那么就替换掉application.yml中的#spring.profiles.active#参数为test,具体代码如下所示:
processResources { filesMatching('**/application.yml') { filter { it.replace('#project.version#', version) } filter { it.replace('#spring.profiles.active#', profiles) } } }
在application.yml中可以看到这里是有个占位符的
3.docker打包
这里通过docker-compose来把应用打包成docker镜像的,这里可以通过指定环境变量参数
这个参数是会覆盖gradle中参数的,就是说即便你指定了gradlew bootWar -Pprod buildDocker,但是你docker-compose文件中的参数是active,那么docker启动的时候已然会使用test的环境配置;在这个地方也是卡了蛮久的;当然,docker还可以通过修改dockerFile的启动命令
java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar rest-api.jar
或者通过docker run命令启动镜像的时候把参数加载进去
docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" --name rest-api dockerImage:latest
到此这篇关于SpringBoot+docker环境变量配置详解的文章就介绍到这了,更多相关SpringBoot docker环境变量内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍详解 MAC/Linux Vi配置环境变量及Java环境变量配置,包括了详解 MAC/Linux Vi配置环境变量及Java环境变量配置的使用技巧和注意事项,需要的朋友参考一下 详解 MAC/Linux Vi配置环境变量及Java环境变量配置 vi基础 1、vi的基本概念 (1)基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mod
本文向大家介绍tomcat环境变量详细配置步骤,包括了tomcat环境变量详细配置步骤的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了tomcat环境变量的配置教程,供大家参考,具体内容如下 1.===> 进入bin目录下,双击startup.bat看是否报错。一般肯定会报。 2.===> 右键我的电脑===>高级===>环境变量 新建一个 变量名为 JAVA_HOME 然后变
如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任意位置执行 MySQL 命令了,本节主要介绍怎样手动配置环境变量。 MySQL 如果不配置环境变量就只能在 my
类型: Object Nuxt.js 让你可以配置在客户端和服务端共享的环境变量。 例如 (nuxt.config.js): module.exports = { env: { baseUrl: process.env.BASE_URL || 'http://localhost:3000' } } 以上配置我们创建了一个 baseUrl 环境变量,如果应用设定了 BASE_URL
本文向大家介绍springboot多环境(dev、test、prod)配置详解,包括了springboot多环境(dev、test、prod)配置详解的使用技巧和注意事项,需要的朋友参考一下 我们在开发应用的时候,通常同一套程序会被应用和安装到几个不同的环境中,比如开发、测试、生产等。 其中每个环境的数据库地址、服务器端口等配置都不同。如果在为不同环境打包时都要频繁的修改配置文件,那必将是个非常繁
JDK 安装和配置完成后,可以测试其是否能够正常运行。选择“开始”|“运行”命令,在打开的“运行”对话框中输入 cmd 命令,按 Enter 键进入到 DOS 环境下。 在命令提示符后输入并执行 命令,系统如果输出类似图 1 所示的 JDK 版本信息,说明 JDK 已经配置成功。 图 1 查看JDK版本 提示:在命令提示符后输入测试命令时,需要注意 java 和减号之间有一个空格,而减号和 ve