docker tomcat与外部WAR的使用

我一直在寻找docker上的tomcat的最佳实践,以及如何链接一个WAR文件。

碰到的两种方法是:

  1. 扩展基础Tomcat映像并将WAR文件复制到/webapps ,然后重build自己的映像。
  2. 使用两个容器,第一个裸露的tomcat和第二个数据容器,比如busybox,这个容器是WAR文件。 然后,你可以在/webapps的tomcat容器上挂载busybox容器,WAR文件将被有效地拾取。

我喜欢第二种方法的声音,但是我一直无法成功地使这个工作。

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

数据容器Dockerfile:

 FROM busybox RUN mkdir /webapps COPY ./demo.war /webapps/demo.war VOLUME ['/webapps'] 

泊坞窗,compose.yml

 version: '2' services: data: image: <Data Container Image> tomcat: image: tomcat:8.5.4-jre8 volumes_from: - data ports: - "678:8080" 

WAR文件不会被复制,并且docker-compose up运行后,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,但卷,因为volume_from是相当反对使用“卷”,我认为与docker1.11引入

提示:调整tomcat容器的安装path,可能是/ usr / local / tomcat / webapps