- 首先编写Dockerfile
FROM tomcat:9.0.10-jre8
MAINTAINER "zxc <zhaoxiangchun@yunionyun.cn>"
USER root
ENV TZ Asia/Shanghai
ENV LANG C.UTF-8
ADD ./target/zhTask.war /usr/local/tomcat/webapps/
#COPY ./config/server.xml /usr/local/tomcat/conf/server.xml
#RUN rm -rf /usr/local/tomcat/webapps/cmdb.war
#RUN rm -r /usr/local/tomcat/webapps/ROOT/
#RUN mv /usr/local/tomcat/webapps/cmdb.war /usr/local/tomcat/webapps/ROOT.war
#RUN unzip -oq /usr/local/tomcat/webapps/ROOT.war -d /usr/local/tomcat/webapps/ROOT
这里需要注意的点:
- 在本地目录中新建target目录并上传上需要部署的war包.在Dockerfile中并没有 RUN java/tomcat相关的环境变量的命令,因为在tomcat运行的时候,脚本会有相关的创建环境变量的命令
- FROM 的基础镜像:tomcat/jre版本
- 执行命令构建镜像命令
docker build -t zhtask:latest .
注意命令最后的小点
3.运行镜像
docker run --rm -v /build/config/appcore.properties:/usr/local/tomcat/conf/appcore.properties -p 8080:8080 zhtask
-v 后是指定配置文件的目录,挂载到tomcat的安装目录下的conf下,==这里也是镜像容器的全路径名(含文件名),如果不指定文件名的话,conf目录就会被指定的文件路径覆盖,我在实践的过程中,很多都是由于挂载文件路径引起的
**至此一次tomcat镜像,同时部署war包就完成了**
这次我是将所要的部署的war包放置在了镜像中,运行镜像时,只需要指定war包中的配置文件就可以(需要代码中配合完成).
也可以在docker run时 -v 指定要部署的war包