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的配置文件啦。

感谢各位看官捧场。

原文地址:https://www.cnblogs.com/bigben0123/p/8875573.html

时间: 2024-10-08 15:04:18

springboot之docker启动参数传递的相关文章

Springboot 生成docker image

前段日子搭建了一个kubenetes集群,kubenetes是需要载入docker image来运行应用的. 我使用的是Springboot框架,因此向大家分享一下Springboot生成docker image的一个方法.不对的地方请指教- 一.Springboot生成jar包 docker image生成需要用到项目build生成的jar包,因此第一步你需要生成一个jar包.maven项目,命令是: mvn clean package 二.Dockerfile 1.jar生成完毕后,需要创建

2019.1.22 springboot+elasticsearch+docker

首先先用docker 搭建 es 搜索 es+springboot 大都又是 在本地 搭建的es..于是觉得自己边搜边写一篇博客 作为记录使用 docker:首先安装 docker pull elasticsearchdocker run -d --name es -p 9200:9200 -e "discovery.type=single-node" id 打开 服务器ip:9200 可以正常打开docker exec -it es /bin/bashcd plugins/plugi

SpringBoot 部署 docker 打包镜像

SpringBoot 部署 docker 打包镜像 环境: 1.代码编写工具:IDEA 2.打包:maven 3.docker 4.linux 7.JDK1.8 8.Xshell 9.Xftp 第一步:使用idea创建简单的springboot项目 引用一篇别人文章:https://blog.csdn.net/u013777094/article/details/78580710/ 第二步:设置项目生成jar包(两种方式) 1.修改pom文件 <?xml version="1.0"

3.Springboot之修改启动时的默认图案Banner

一.SpringBoot的默认启动图案 在SpringBoot启动的时候,默认的会展示出一个spring的logo,这个图案我们用户是可以自定义的 二.自定义启动图案 方法一: Application中控制图案显示 @SpringBootApplication public class HelloSpringBootApplication { public static void main(String[] args) { SpringApplication application = new

docker启动后容器无法上网

现象 docker启动后,使用域名安装软件时,发现容器无法上网 ping 宿主机  --> OK ping 网关 --> 不通 查看结果发现宿主机端口转发未打开 # cat /proc/sys/net/ipv4/ip_forward 0 打开后,网络正常 echo 1 > /proc/sys/net/ipv4/ip_forward 来自为知笔记(Wiz)

Docker源码分析之——Docker启动

在上文中,笔者通过分析Docker的架构,初步作了Docker的架构图.架构图本身更多的出于笔者的理解,为了便于理解,对于Docker代码本身做了一些抽象,例如Server的运行都是以一个Job的形式存在的,而架构图中并未明显的表明这一点. Docker模块简介 本文将从源码的角度分析Docker的启动,主要是作为一个daemon进程的启动.在这之前,需要先清晰Docker内部最主要的几个概念:Daemon,Engine以及Job. Daemon Daemon可以认为是Docker守护进程的载体

docker 启动 centos 镜像,容器会自动退出

docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1.在镜像内部执行 RUN touch /var/log/1.txt  然后最后用CMD "tail" "-f" "/var/log/1.txt"结尾 2.启动脚本的方式 #!/bin/bash set -m && sh /opt/red

docker启动容器报&quot;iptables No chain/target/match&quot;

Centos 7 docker 启动grafana容器报"iptables No chain/target/match by that name" docker run -d -p 3000:3000  grafana/grafana:5.1.0   Error response from daemon: Cannot start container 565c06efde6cd4411e2596ef3d726817c58dd777bc5fd13762e0c34d86076b9e: ip

Ubutntu安装docker启动报Removed /etc/systemd/system/docker.service.

Ubutntu安装docker启动报Removed /etc/systemd/system/docker.service.的错误,只需要执行以下三条命令. systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service 原文地址:https://www.cnblogs.com/li-bing/p/9245783.html