gpt4 book ai didi

tomcat - 在外部 WAR 中使用 docker tomcat

转载 作者:行者123 更新时间:2023-11-28 22:27:09 30 4
gpt4 key购买 nike

我一直在研究 tomcat on docker 的最佳实践以及如何链接 WAR 文件。

遇到的两种方法是:

  1. 扩展基础 tomcat 镜像并将 WAR 文件复制到 /webapps,然后将镜像重建为您自己的镜像。
  2. 使用两个容器,第一个是裸 tomcat,第二个是数据容器,例如 busybox,其中包含 WAR 文件。然后,您可以将 busybox 容器安装到位于 /webapps 的 tomcat 容器上,WAR 文件将被有效地提取。

我喜欢第二种方法的声音,但是我一直无法成功地让它发挥作用。

我尝试使用 busybox 创建一个数据容器,然后使用 docker compose 启动服务。 WAR 不会被复制,busybox 容器会立即停止。

数据容器 Dockerfile:

FROM busybox

RUN mkdir /webapps
COPY ./demo.war /webapps/demo.war

VOLUME ['/webapps']

docker-compose.yml

version: '2'
services:
data:
image: <Data Container Image>

tomcat:
image: tomcat:8.5.4-jre8
volumes_from:
- data
ports:
- "678:8080"

docker-compose up 运行后,WAR 文件没有被复制过来,busybox 容器立即退出。

如有任何帮助,我们将不胜感激。

最佳答案

根据定义,数据容器正在退出,即它的 DNA。

你需要将它暴露为一个卷或者使用

version: '2'
services:
data:
image: <Data Container Image>
volumes:
- webapps:/webapps
tomcat:
image: tomcat:8.5.4-jre8
volumes:
- webapps:/webapps
ports:
- "678:8080"
volumes:
webapps:
driver: local

另请注意,我没有使用 volumes_from,而是使用了 volumes,因为 volumes_from 已被弃用,我认为是在 docker 1.11 中引入的“volumes”

提示:调整tomcat容器中的挂载路径,可能是/usr/local/tomcat/webapps

关于tomcat - 在外部 WAR 中使用 docker tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39230117/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com