一 工作目录

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# pwd
/data/dockerfile/web/tomcat/tomcat-app1

二 准备业务配置

2.1 调整JAVA_OPTS

按需求向catalina.sh脚本添加以下内容:

JAVA_OPTS="-server -Xms1g -Xmx1g -Xss512k -Xmn1g -XX:CMSInitiatingOccupancyFraction=65  -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 -XX:NewSize=2048M -XX:MaxNewSize=2048M -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled"

2.2 准备server.xml

按需修改server.xml文件内容,比如:

<Host name="localhost"  appBase="/data/tomcat/webapps"  unpackWARs="false" autoDeploy="false">

2.3  准备业务代码

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# ls
Dockerfile build-command.sh catalina.sh myapp myapp.tar.gz server.xml webapps.tar.gz

三 编写Dockerfile

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# cat Dockerfile 
FROM 192.168.174.120/baseimages/tomcat-base:8.5.73
ADD catalina.sh /usr/local/tomcat/bin/catalina.sh

ADD server.xml /usr/local/tomcat/conf/server.xml

ADD webapps.tar.gz /data/tomcat/

ADD myapp.tar.gz /data/tomcat/webapps/EXPOSE 8080 8443
CMD ["catalina.sh","run"]

四 编写构建镜像脚本

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# cat build-command.sh 
#!/bin/bash
TAG=$1
docker build -t 192.168.174.120/baseimages/tomcat-app1:${TAG} .
sleep 3
#docker push 192.168.174.120/baseimages/tomcat-app1:${TAG}

五 构建镜像

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# ./build-command.sh v1.0
Sending build context to Docker daemon 35.84kB
Step 1/6 : FROM 192.168.174.120/baseimages/tomcat-base:8.5.73
---> 97996035932d
Step 2/6 : ADD catalina.sh /usr/local/tomcat/bin/catalina.sh
---> 150d60c70080
Step 3/6 : ADD server.xml /usr/local/tomcat/conf/server.xml
---> 632dce2ee2c1
Step 4/6 : ADD myapp.tar.gz /data/tomcat/webapps/myapp/
---> 2c808d5a7a05
Step 5/6 : EXPOSE 8080 8443
---> Running in 575339151d4f
Removing intermediate container 575339151d4f
---> 47b28a887efd
Step 6/6 : CMD ["catalina.sh","run"]
---> Running in 5822a7d40af5
Removing intermediate container 5822a7d40af5
---> 0b2e32fd406f
Successfully built 0b2e32fd406f
Successfully tagged 192.168.174.120/baseimages/tomcat-app1:v1.0

六 验证镜像

6.1 启动镜像

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# docker run -d -p 8080:8080 --name tomcat-app1  192.168.174.120/baseimages/tomcat-app1:v1.0 
d441dd1bd2c3c0e2f8b0c4d75eb3b5f54d59589829c1bb8fb37e88fc9b8f8109

6.2 查看镜像信息

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d441dd1bd2c3 192.168.174.120/baseimages/tomcat-app1:v1.0 "catalina.sh run" 28 seconds ago Up 27 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 8443/tcp tomcat-app1

6.3 访问web界面

Dockerfile制作tomcat业务镜像_docker

6.4 访问业务路径

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# curl http://192.168.174.120:8080/myapp/
tomcat docker image test

七 上传镜像到harbor

root@k8s-harbor-01:/data/dockerfile/web/tomcat/tomcat-app1# docker push  192.168.174.120/baseimages/tomcat-app1:v1.0