docker tomcat与外部WAR的使用
我一直在寻找docker上的tomcat的最佳实践,以及如何链接一个WAR文件。
碰到的两种方法是:
- 扩展基础Tomcat映像并将WAR文件复制到
/webapps
,然后重build自己的映像。 - 使用两个容器,第一个裸露的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