zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Docker中运行Springboot jar时的变量传递

2023-09-14 09:01:56 时间

Docker可以把我们的运行环境打包,然后我们只要run就可以了。大部分hello world都是这么写的。但都缺少了实际应用环节。以springboot为例,hello world的Dockerfile是这样的:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

我们实际使用的时候通常是

java -jar app.jar --spring.profiles.active=prod

也就是说,需要分环境。那直接

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar", "--spring.profiles.active=prod"]

这样确实可以直接打出prod的运行包。直接run就可以了。

当同时需要打test环境的时候,我重新写一个新的Dockerfile,改成test, 然后构建,就可以了。

docker build -t demo -f Dockerfile.test  .

写两个Dockerfile看起来太傻逼了,构建时替换好了。

 

参考链接:

https://www.cnblogs.com/woshimrf/p/springboot-docker.html