部署准备
部署步骤
安装docker环境
1
   | apt update && sh <(curl -fsSL https://get.docker.com)
   | 
 
测试
拉取alpine和ubuntu镜像,这里也可以直接拉官方的,我是拉本地仓的

创建目录,先编译基于alpine镜像
1
   | mkdir /Dockerfile/web/tomcat/{alpine,ubuntu} -p && cd /Dockerfile/web/tomcat/alpine
  | 
 
创建dockerfile文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
   | cat << EOF > dockerfile FROM harbor.test.com/tomcat/alpine-tomcat:v1.0 LABEL autor="lee" ENV tomcat_version=8.5.90 PATH=/usr/local/tomcat/bin:$PATH RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/'  /etc/apk/repositories \     && apk add --no-cache openjdk8 \     #因为alpine要支持 oracle jdk 需要安装几个库依赖文件,这里就不折腾了     && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone \     && addgroup tomcat -g 2023 && adduser -Gtomcat -u 2023 -D tomcat \     && wget -P /usr/local http://pan.alybaba.top/soft/apache-tomcat-${tomcat_version}.tar.gz \     #这里可使用 ADD 进行添加,我偷个懒...     && tar xf /usr/local/apache-tomcat-${tomcat_version}.tar.gz -C /usr/local \     && ln -s /usr/local/apache-tomcat-${tomcat_version} /usr/local/tomcat \     && rm -rf /usr/local/*.tar.gz \     && chown -R tomcat.tomcat /usr/local/apache-tomcat-${tomcat_version}/ CMD ["catalina.sh","run"] EXPOSE 8080 EOF
   | 
 
接下来执行build,可以看到没有问题,然后执行一下,一个简单的alpine+tomcat就完成了

web端查看,可以看到没有问题,接下来试试ubuntu

进入目录
创建文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   | cat << EOF > dockerfile FROM harbor.test.com/tomcat/ubuntu-tomcat:v1.0  LABEL autor="lee"  ENV tomcat_version=8.5.90 jdk_version=1.8.0_371  PATH=/usr/local/tomcat/bin:$PATH  \     #JAVA_HOME=/usr/local/jdk \     #PATH=${PATH}:${JAVA_HOME}/bin  JRE_HOME=${JAVA_HOME}/jre \     #CLASSPATH=.:${JAVA_HOME}/lib/:${JRE_HOME}/lib/ PATH=/usr/local/tomcat/bin:${PATH}     #我在脚本source了,这里我也懒的给变量了 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list \     && apt update; export DEBIAN_FRONTEND=noninteractive && apt install -y tzdata wget \     && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone \     && groupadd tomcat -g 2023 && useradd tomcat -u 2023 -g tomcat && rm -rf /var/lib/apt/lists/* \     && wget -P /usr/local http://pan.alybaba.top/soft/jdk-${jdk_version}-linux-x64.tar.gz \     #这里下载纯属偷懒,一般下载到构建目录用 ADD 复制进去,自动解压     && tar xf /usr/local/jdk-${jdk_version}-linux-x64.tar.gz -C /usr/local \     && ln -s /usr/local/jdk${jdk_version} /usr/local/jdk \     && echo  "export JAVA_HOME=/usr/local/jdk\nexport PATH=\$PATH:\$JAVA_HOME/bin\nexport JRE_HOME=\$JAVA_HOME/jre\nexport CLASSPATH=.:\$JAVA_HOME/lib/:\$JRE_HOME/lib/" > /etc/profile.d/jdk.sh  \     && wget -P /usr/local http://pan.alybaba.top/soft/apache-tomcat-${tomcat_version}.tar.gz \     && tar xf /usr/local/apache-tomcat-${tomcat_version}.tar.gz -C /usr/local \     && ln -s /usr/local/apache-tomcat-${tomcat_version} /usr/local/tomcat && apt autoremove -y  wget \     && echo 'PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh  && rm -rf /usr/local/*.tar.gz \     && chown -R tomcat.tomcat /usr/local/tomcat  && echo   'JAVA_HOME=/usr/local/jdk' >  /usr/local/tomcat/conf/tomcat.conf COPY entrypoint.sh / ENTRYPOINT ["/entrypoint.sh"] EXPOSE 8080 EOF
   | 
 
创建entrypoint脚本………
1 2 3 4 5 6 7
   | cat << EOF entrypoint.sh #!/bin/bash . /etc/profile.d/jdk.sh #tomcat的变量我写进去了.... sleep 1 catalina.sh run EOF
   | 
 
构建镜像
1
   | chmod +x entrypoint  && docker build -t ubuntu-tomcat:v1.0.1 .
   | 
 
可以看到很大….

那我们来访问试试,没问题。那么到这里就简单完成了docker镜像构建

参考资料