需求:
用dockerfile制作一个个性化的tomcat镜像,比如给一个基本tomcat镜像添加session共享,设置中央时区等个性化设置。
dockerfile:
#基础镜像为harbor上pull下来的基础镜像
from reg.dynamicharbor.com/web/tomcat:8.5-jre8-alpine
#设置环境变量
ENV WORK_PATH /usr/local/tomcat
#删除/usr/local/tomcat/conf下面的相关xml文件
RUN rm $WORK_PATH/conf/context.xml
RUN rm $WORK_PATH/conf/web.xml
RUN rm $WORK_PATH/conf/server.xml
#替换成我们本地已经设置好的配置文件(将这些文件放在dockerfile同一目录下)
COPY ./context.xml $WORK_PATH/conf
COPY ./web.xml $WORK_PATH/conf
COPY ./server.xml $WORK_PATH/conf
COPY ./redis-data-cache.properties $WORK_PATH/conf
COPY ./commons-logging-1.2.jar $WORK_PATH/lib
COPY ./commons-pool2-2.4.2.jar $WORK_PATH/lib
COPY ./jedis-2.9.0.jar $WORK_PATH/lib
COPY ./tomcat-cluster-redis-session-manager-2.0.2.jar $WORK_PATH/lib
#设置中央时区(上海)
RUN apk update && apk add curl bash tree tzdata \
&& cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo -ne "Alpine Linux 3.4 image. (`uname -rsv`)\n" >> /root/.built
具体操作步骤:
1、将相关文件(jar/xml/dockerfile)放在node节点服务器上
2、进入当前目录:
cd /home/examtomcat
制作docker镜像:
docker build -t mytomcat:1.0 .
3、查看制作好的镜像:
docker images
4、运行该镜像:
docker run -it -d -- mytomcat:1.0 /bin/sh
5、查看运行的容器:
docker ps
6、进入该容器:(775...是容器ID)
docker exec -it 775c7c9ee1e1 /bin/bash
7、将该容器推到harbor上:
登陆harbor:
docker login reg.dynamicharbor.com
打tag,推上去:
docker tag mytomcat:1.0 (镜像名 )reg.dynamicharbor.com/web/mytomcat:1.0(自己命名)
docker push reg.dynamicharbor.com/web/mytomcat:1.0
自定义镜像制作完成。