如何在docker tomcat容器中更新war文件
我已经开始浏览文档,开始了解docker。使用官方的tomcat:7-jre7映像创建了一个映像,并在适当的位置粘贴了一个war,它可以正常启动/停止 我的参考文件是:如何在docker tomcat容器中更新war文件,tomcat,ssh,docker,war,Tomcat,Ssh,Docker,War,我已经开始浏览文档,开始了解docker。使用官方的tomcat:7-jre7映像创建了一个映像,并在适当的位置粘贴了一个war,它可以正常启动/停止 我的参考文件是: FROM tomcat:7-jre7 MAINTAINER: me, me@hotmail.com ADD app.war /usr/local/tomcat/webapps EXPOSE 8080 CMD ["catalina.sh", "run"] 好了,我有两个问题: 如果出现不
FROM tomcat:7-jre7
MAINTAINER: me, me@hotmail.com
ADD app.war /usr/local/tomcat/webapps
EXPOSE 8080
CMD ["catalina.sh", "run"]
好了,我有两个问题:
docker run -t <_id> /bin/bash
docker运行-t/bin/bash
然后在另一个会议上做了下面的附加,但那没什么作用——我看到的只是一个黑屏
docker attach <running_container_id>
docker连接
我想到的另一种方法(未经测试)是从主机共享文件——希望更新war文件会触发tomcat重新部署war文件?有人尝试过这个吗
有没有更好更简单的方法
感谢您的宝贵意见,非常感谢。您有多种选择,具体取决于您想做什么。最简单的选择是让构建war文件的文件夹也包含上面的Dockerfile。然后,每当更新war文件时,启动docker构建和docker运行。使用fig也可以轻松实现自动化,例如:
tomcat:
build: ./war
现在只要在war文件更改时运行
fig up
,您的新容器就会从war
文件夹中的Dockerfile中构建并运行。我认为这样的想法是日志输出通过管道传输到主机(或syslogd或容器外部的其他东西),并且您可以通过重建docker映像来更新war。啊,对,我明白了。因此,一些停机时间,然后服务正常进行?在我启动docker的最初会话中,我可以看到日志,所以我不太关心这个问题,但是更新内容很重要。Re:宕机:我认为这里的想法是在旧容器仍在运行时启动新容器,将web代理指向新容器,然后关闭旧容器。对。谢谢你。因此,容器本身保持不变,不会向其中写入任何用户数据,或者装载一个卷并在其中写入数据,这样当容器关闭时,该卷将保持持久性并重新装载。一个更合适的方法是让应用程序联系某种db并在那里存储数据?然后像你提到的那样对代理进行更改?