pengyisc1987 2019-06-05 00:16 采纳率: 0%
浏览 6173

请问,docker部署后如何修改spring boot 的应用配置文件?

  我是个java开发菜鸟,以前一直维护的是spring mvc+tomcat在linux的web项目,最近在学习spring boot +docker(docker-compose),试图改造我手上的Web项目,但遇到一个问题百思不得其解,还希望哪位大神伸手援助。

  先说说我的需求,很简单,以前维护pring mvc+tomcat的时候,只是先在Linux部署tomcat、mysql等组件,然后将我的spring应用放至tomcat/webapps下就可以正常运行,因为部署环境不同,该应用经常需要根据现场实际情况,修改web的config等配置文件然后重启,如果应用报错还可以在指定目录下查看项目打印的各类log日志(log4j输出不同的日志)。虽然前期部署麻烦了一些,但有安装脚本什么的,维护起来也方便。  这段时间接触了spring boot +docker以后,也能够将应用通过docker(docker-compose)方式部署起来,但后续的问题怎么也搞不定,比如我想修改应用配置文件中的某一参数,然后重启docker容器就可以正常运行项目,但不知道如何修改application.xml。

  我能想到的方法有三种:

  1、通过volume将tomcat映射出来,docker-compose配置如下

#docker-compose的版本
version: '3'

#定义服务
services:

  #服务名称,可随意定义
  gwqserive:
    build:
      #dockerfile的路径
      context: gwqapp
      #dockerfile的名称
      dockerfile: appDockerfile
    #相当于docker run -v的作用
    volumes:
      - "./jar:/tmp"
    #容器名称
    container_name: gwq-compose-app-container
    #该服务依赖的其他服务,该配置选项可修改启动顺序
    depends_on:
      - mysqldbserver
      - redisServer
    links:
      - mysqldbserver 
      - redisServer

appDockerfile:

FROM java:8-jre-alpine

#维护者信息
MAINTAINER Gaowq
VOLUME /tmp


ADD SpringBootRedisDemo-0.0.1-SNAPSHOT.jar app.jar 


#为构建镜像设置监听端口,使容器在运行时监听
EXPOSE 8080

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

好吧,然后容器运行以后,前往/tmp或jar目录下,发现全是tomcat缓存类似的文件,没啥用,跟之前的webapps完全不是一回事

 2、想docker exec进去看看,然后。。。一脸meng bi!完全不知道需要的文件在哪

 3、我能想到的方式,就是修改好应用配置文件,重新打包jar生成新的镜像,但。。。未免有点太复杂了吧!而且也没有解决我获取不同各类log4j日志的问题。

  因为项目最终打包完毕后,将交于专门技术人员安装与维护,故上述情况经常会遇到,由于本人技术太菜,还请各位大神不吝赐教!谢谢!

  • 写回答

4条回答 默认 最新

  • 曲奇丶 2019-06-06 18:21
    关注

    要么打出来的镜像里面,就已经是对的配置。
    要么用配置中心吧,docker部署一般都会用配置中心来管理程序配置。
    手动去容器里面改肯定是不行的,容器一重启又会变成旧的配置

    评论

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)