有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在docker容器的Tomcat7中部署war文件

我不知道如何在docker容器的帮助下将war文件部署到Tomcat7中

在windows操作系统中,这很容易,因为我们手动将项目的war文件粘贴到tomcat的webapps文件夹中,但对于docker容器,这有点困难

由于docker容器的目录结构,我不知道如何更改tomcat的端口并在docker的tomcat-users.xml文件中添加角色管理器。以及如何使用docker中新更改的端口号启动tomcat


共 (2) 个答案

  1. # 1 楼答案

    最简单的方法是使用卷参数(-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。它将自动部署

  2. # 2 楼答案

    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驱动器,以使其正常工作