我一直在研究docker上tomcat的最佳实践以及如何链接WAR文件。
遇到的两种方法是:
/webapps
,然后将该映像重建为您自己的映像。/webapps
的tomcat容器上安装busybox容器,并且可以有效地获取WAR文件。我喜欢第二种方法的声音,但是我无法成功地将其发挥作用。
我尝试使用busybox创建数据容器,然后使用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容器会立即退出。
任何帮助都将不胜感激。
答案 0 :(得分:0)
数据容器按定义退出,即其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”来使用volumes_from而不推荐使用我认为引入了docker 1.11
提示:调整tomcat容器中的挂载路径,可能是/ usr / local / tomcat / webapps