springboot之docker启动参数传递

Posted Bigben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot之docker启动参数传递相关的知识,希望对你有一定的参考价值。

这几天有网友问,如何在使用docker的情况下传递spring.profiles.active=test,也就是说springboot切换配置文件。以往我们直接通过java启动jar的时候,直接跟上--spring.profiles.active=test或者利用jvm参数-Dspring.profiles.active=test来传递。我写一些命令吧。

非docker下springboot切换配置文件

java -jar test.jar --spring.profiles.active=test #第一种情况切换配置文件

java -Dspring.profiles.active=test -jar test.jar #第二种情况切换配置文件

有朋友会疑惑,通过jvm参数怎么可以切换呢,其实springboot是支持的哦。

docker下springboot切换配置文件

docker封装了springboot后切换会多一些步骤,其实也不是很难。笔者找了网上好多文章,并没有看到通过com.spotify:docker-maven-plugin这个docker打包插件实现的环境变量传递参数,也可能是太简单了,没人写,但是我看到好多人需要,我还是写一下吧。但是网上有通过Dockerfile实现的Env变量传递的。下面我贴出pom中的打包插件代码:

请注意env节点和entryPoint的变化

com.spotifydocker-maven-plugin0.4.11pumelo/${project.artifactId}-${version}frolvlad/alpine-oraclejdk8:slim""[ "sh", "-c", "java $JAVA_OPTS -jar /${project.build.finalName}.jar" ]/${project.build.directory}${project.build.finalName}.jar

测试

从新打包镜像后,运行

docker run -e JAVA_OPTS=‘-Xms128m -Xmx256m -Dspring.profiles.active=prod‘ -it pumelo/test-1.0.0 /bin/bash

这样就可以通过jvm参数来切换springboot的配置文件啦。

技术分享图片

感谢各位看官捧场。

以上是关于springboot之docker启动参数传递的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 开发案例之参数传递的正确姿势

SpringBoot 开发案例之参数传递的正确姿势

springboot 启动接收参数

sh 容器启动脚本在容器中挂载外部的应用并在容器启动的时候启动,参数传递使用环境变量#bash #docker

Kubernetes - 如何将信任库路径和密码传递给 JVM 参数

ReactNative入门之android与rn初始化参数的传递