Docker将warfile添加到官方Tomcat映像

use*_*997 22 docker boot2docker dockerfile

我通过运行此命令为Tomcat提取了官方Docker镜像.

docker run -it --rm tomcat:8.0
Run Code Online (Sandbox Code Playgroud)

通过使用它作为基本图像,我需要在tomcat webapps文件夹中构建包含war文件的新图像.我像这样创建了Dockerfile.

From tomcat8
ADD warfile /usr/local/tomcat
Run Code Online (Sandbox Code Playgroud)

当我通过构建映像运行此Dockerfile时,我无法看到Tomcat首页.

任何人都可以告诉我如何将我的warfile添加到官方Tomcat图像webapp文件夹.

dan*_*iel 66

从repo的文档中读取你会做那样的事情

FROM tomcat
MAINTAINER xyz

ADD your.war /usr/local/tomcat/webapps/

CMD ["catalina.sh", "run"]
Run Code Online (Sandbox Code Playgroud)

然后使用.构建您的图像 docker build -t yourName <path-to-dockerfile>

并运行它:

docker run --rm -it -p 8080:8080 yourName
Run Code Online (Sandbox Code Playgroud)
  • --rm 一旦停止容器就立即将其移除
  • -p 将端口转发到您的主机(或者如果您使用boot2docker到此IP)
  • -it 允许交互模式,因此您可以看到是否部署了某些内容


Tom*_*eba 21

基于@ daniel的回答,如果你想将你的WAR部署到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"]
Run Code Online (Sandbox Code Playgroud)

它删除现有的根webapp,将WAR复制到ROOT.war文件名然后执行tomcat.