Docker将warfile添加到官方Tomcat映像中
我通过运行这个命令,为Tomcat提供了正式的Docker镜像。
docker run -it --rm tomcat:8.0
通过使用这个作为基础的形象,我需要build立新的图像,包含我的战争文件在tomcat
webapps
文件夹。 我创build了这样的Dockerfile。
From tomcat8 ADD warfile /usr/local/tomcat
当我通过构build映像来运行这个Dockerfile时,我无法看到Tomcat的首页。
任何人都可以告诉我如何将我的warfile添加到官方的Tomcat图像webapp文件夹。
从回购的文件中阅读,你会做这样的事情
FROM tomcat MAINTAINER xyz ADD your.war /usr/local/tomcat/webapps/ CMD ["catalina.sh", "run"]
然后使用docker build -t yourName <path-to-dockerfile>
构build你的图像
并运行它:
docker run --rm -it -p 8080:8080 yourName
-
--rm
在您停止时立即移除容器 -
-p
将端口转发到您的主机(或者如果您使用boot2docker到此IP) -
-it
允许交互模式,所以你看看是否得到部署
build立在@丹尼尔的答案,如果你想要部署你的战争的根tomcat,我做到了这一点:
FROM tomcat:7-jre7 MAINTAINER xyz RUN ["rm", "-fr", "/usr/local/tomcat/webapps/ROOT"] COPY ./target/your-webapp-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war CMD ["catalina.sh", "run"]
它删除现有的根web应用程序,将您的WAR复制到ROOT.war文件名,然后执行tomcat。
你如何检查webapps
文件夹?
webapps
文件夹位于docker容器内。 如果你想访问你的webapps
容器,你可以在你的容器中安装一个主机目录,把它用作webapps
文件夹。 这样,你可以访问文件,而无需访问docker。 详情见这里
要访问你的日志,你可以做到这一点,当你运行你的容器,例如
docker run -rm -it -p 8080:8080 **IMAGE_NAME** /path/to/tomcat/bin/catalina.sh && tail -f /path/to/tomcat/logs
或者你开始你的docker集装箱,然后做一些事情:
docker exec -it **CONTAINER_ID** tail -f /path/to/tomcat/logs
docker run -it –rm –name MYTOMCAT -p 8080:8080 -v … / wars:/ usr / local / tomcat / webapps / tomcat:8.0
战争文件夹包含战争部署