如何在 docker 容器的 tomcat 7 中部署 war 文件

how to deploy war file in tomcat 7 of docker container

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

在 windows OS 中很容易,因为我们手动将项目的 war 文件粘贴到 tomcat 的 webapps 文件夹中,但如果 docker容器有点难

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

中新更改的端口号启动 tomcat

最简单的方法是使用带有 docker run 的卷参数 (-v) 使 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(另一个 window)并将您的 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。它将自动部署。

至于 2021 年 3 月,在 Windows Docker 上使用单一命令行解决方案,试试这个:

docker 运行 --name YourApp -v "c/WarFiles/YourApp.war:/usr/local/tomcat/webapps/YourApp.war " -it -p 9090:8080 tomcat:7

然后在 http://localhost:9090/YourApp 打开你的应用

注意卷中的“双引号”和 c 使用“Linux”斜杠 / 驱动器以使其工作。