Docker构建Maven+Tomcat基础镜像的实现
前言
在Java编程中,大多数应用都是是基于Maven构建的,而交付的结果大多是采用的Tomcat的war包形式,所以,构建一个基于Maven和Tomcat的基础镜像很有必要,不仅能帮助我们提升平时自主实验研究分析的效率,还可以在一定程度能减少运维减少编写Dockerfile的复杂度,提升整体项目交付效率。
1.创建编译目录
mkdir-pbuild_docker cdbuild_docker vimDockerfile
2.编写Dockerfile
首先,我们选择官方维护的maven:3.3.3镜像作为基础镜像,然后,在此基础上添加Tomcat支持。
FROMmaven:3.3.3
如果喜欢国内仓库的速度,也可以选择阿里的maven:3-jdk-8。
FROMregistry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8
其次,设置Tomcat相关的环境变量,并添加到系统PATH变量中,使Tomcat的启动脚本可以在Shell中直接访问。
ENVCATALINA_HOME/usr/local/tomcat ENVPATH$CATALINA_HOME/bin:$PATH RUNmkdir-p"$CATALINA_HOME" WORKDIR$CATALINA_HOME
第三,添加TomcatGPG-KEY,用于Tomcat下载完后校验文件是否正确,以下keyid数据来自官方Tomcat-8。
RUNgpg--keyserverpool.sks-keyservers.net--recv-keys\ F22C4FED\ 86867BA6\ E86E29AC\ 307A10A5\ 564C17A3\ 0x7C037D42\ 0BECE548\ 5E763BEC\ 2F6059E7\ 288584E7\ 4B6FAEFB\ 286BACF1\ 731FABEE\ 461B342D\ 0D498E23\ DC3D1B18\ D63011C7\ 30480593
第四,设置Tomcat版本变量,构建时可以传入相应参数来更改Tomcat版本。因为maven:3.3.3镜像依赖的Java版本是1.8,,所以我们的Tomcat版本也选择8.X版本,保持编译一致性可以最大化Tomcat的性能。
这里我们选用最新版:8.5.45
随后使用curl执行下载,并验证后解压,同时删除多余的bat脚本。(该脚本仅用于Windows环境,在Linux/Mac镜像中无用)
ENVTOMCAT_VERSION8.5.45 ENVTOMCAT_TGZ_URLhttps://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz RUNset-x\ &&curl-fSL"$TOMCAT_TGZ_URL"-otomcat.tar.gz\ &&curl-fSL"$TOMCAT_TGZ_URL.asc"-otomcat.tar.gz.asc\ &&gpg--verifytomcat.tar.gz.asc\ &&tar-xvftomcat.tar.gz--strip-components=1\ &&rmbin/*.bat\ &&rmtomcat.tar.gz*
第五,暴露Tomcat默认的8080端口,并指定基于该镜像的容器启动时执行的脚本,该脚本为Tomcat启动脚本。
EXPOSE8080 CMD["catalina.sh","run"]
3.构建镜像
dockerbuild-tbase-maven-tomcat.
到此,完成。
附:完整Dockerfile文件
FROMmaven:3.3.3 ENVCATALINA_HOME/usr/local/tomcat ENVPATH$CATALINA_HOME/bin:$PATH RUNmkdir-p"$CATALINA_HOME" WORKDIR$CATALINA_HOME RUNgpg--keyserverpool.sks-keyservers.net--recv-keys\ F22C4FED\ 86867BA6\ E86E29AC\ 307A10A5\ 564C17A3\ 0x7C037D42\ 0BECE548\ 5E763BEC\ 2F6059E7\ 288584E7\ 4B6FAEFB\ 286BACF1\ 731FABEE\ 461B342D\ 0D498E23\ DC3D1B18\ D63011C7\ 30480593 ENVTOMCAT_VERSION8.5.45 ENVTOMCAT_TGZ_URLhttps://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz RUNset-x\ &&curl-fSL"$TOMCAT_TGZ_URL"-otomcat.tar.gz\ &&curl-fSL"$TOMCAT_TGZ_URL.asc"-otomcat.tar.gz.asc\ &&gpg--verifytomcat.tar.gz.asc\ &&tar-xvftomcat.tar.gz--strip-components=1\ &&rmbin/*.bat\ &&rmtomcat.tar.gz* EXPOSE8080 CMD["catalina.sh","run"]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。