我不知道如何在docker容器的帮助下将war文件部署到tomcat 7中。
在Windows操作系统中很容易,因为我们手动将项目的war文件粘贴到tomcat的webapps
文件夹中,但是对于docker容器,它有点困难。
由于docker容器的目录结构,我不知道如何更改tomcat的端口并在docker的tomcat-users.xml
文件中添加角色管理器。以及如何在docker中使用新更改的端口号启动tomcat。
答案 0 :(得分:4)
最简单的方法是使用带有-v
的卷参数(docker run
)使webapps
目录和tomcat-users.xml
文件保留在主机文件系统上,而不是容器一。
例如,在Linux主机上:
/tmp/tomcat-users.xml
的文件,其中包含符合您需求的正确内容; /tmp/webapps
。现在,以这种方式运行容器:
docker run -it --rm -p 8888:8080 -v /tmp/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v /tmp/webapps:/usr/local/tomcat/webapps:rw tomcat:7
然后,由于容器在前台启动,连接到另一个shell(另一个窗口)并将war文件复制到/ tmp / webapps。 它将自动部署。
例如,在Windows主机上:
c:\tmp\tomcat-users.xml
的文件,其中包含符合您需求的正确内容; c:\tmp\webapps
。现在,以这种方式运行容器:
docker run -it --rm -p 8888:8080 -v //c/tmp/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro -v //c/tmp/webapps:/usr/local/tomcat/webapps:rw tomcat:7
然后将war文件复制到c:\tmp\webapps
。它将自动部署。
答案 1 :(得分:0)
对于 2021 年 3 月,在 Windows Docker 上使用单个命令行解决方案,试试这个:
docker run --name YourApp -v "c/WarFiles/YourApp.war:/usr/local/tomcat/webapps/YourApp.war" -it -p 9090:8080 tomcat:7
然后在 http://localhost:9090/YourApp 上打开您的应用
注意卷中的“双引号”和带有“Linux”斜杠的 c 驱动器 / 以使其工作。