当前位置:   article > 正文

Docker 在容器中运行springboot的jar包,挂载外部yml配置文件_docker运行jar读取外部yml

docker运行jar读取外部yml

Docker 在容器中运行springboot的jar包,挂载外部yml配置文件

配置两个地方即可
1.Dockerfile配置文件

主要是jar包的运行方式,注意看最后一个ENTRYPOINT参数中的–spring.config.location,这里表示运行的时候动态扫描加载某个目录下的配置文件。我们使用docker buildjar包打好镜像后,继续看第二步,不会的参考:Docker(三)| Java项目打包成镜像并动态加载配置文件和日志、文件持久化.

FROM java:8
EXPOSE 8900

#VOLUME /tmp
ADD smart.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/data/java/config/application-dev.yml"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.运行docker容器命令,主要是挂载目录

假设镜像名字和版本为java/springboot:2019,使用下面命令创建

docker run -dit \
--name smart \
-p 8900:8900 \
-v /data/java/server:/data/java/server \
-v /data/java/config:/data/java/config \
-v /data/java/logs:/data/java/logs \
-v /data/java/txt:/data/java/txt \
java/springboot:2019
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

其他的不介绍了,就介绍我们的外部配置文件application-dev.yml放哪。可以看到第五行的-v命令中,我将目录设置为同样是为了方便,大家可以随意。

我们将linux宿主机上的/data/java/config目录挂载到容器中的/data/java/config目录,大家发现没,第一步的Dockerfile文件中的配置的扫描目录就是/data/java/config目录下的application-dev.yml配置文件,这样我们直接可以修改宿主机上的application-dev.yml配置文件,从而就是修改了容器中的application-dev.yml配置文件,所以我们再重新restart启动的时候,可以发现,扫描的内容就是我们修改之后的。

因为挂载目录是可以将宿主机上的文件和容器中的文件进行交互的,简单来说就是共享同一个文件。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/284211
推荐阅读
相关标签
  

闽ICP备14008679号