我是个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日志的问题。
因为项目最终打包完毕后,将交于专门技术人员安装与维护,故上述情况经常会遇到,由于本人技术太菜,还请各位大神不吝赐教!谢谢!