项目容器化改造(五)Jenkins打包项目镜像
服务器规划
192.168.92.137 Jenkins
192.168.92.139 Harbor
ps:这里两台机都需要安装docker,具体安装教程参照我的上一篇文章
打包镜像需要的内容
如下图:
catalina.sh文件
catalina.sh中设定了tomcat的内存,打包进镜像的tomcat中,限定内存大小,作参数调优用
demo-0.0.1-SNAPSHOT.war
项目war包,用作测试打包用
Dockerfile 文件
#以之前制作的基础镜像为基础
FROM base:1.0
#作者
MAINTAINER kris
#日志
ENV REFRESHED_AT 2019-01-13
#复制外部配置文件至tomcat(不同的项目tomcat配置不一样,因此这个配置单独)
ADD catalina.sh /usr/testimage/tomcat/bin/catalina.sh
#切换镜像的目录,进入/usr/testimage/tomcat/webapps目录
WORKDIR /usr/testimage/tomcat/webapps
#在/usr/testimage/tomcat/webapps下创建目录,用来存放web项目的war包
RUN mkdir demo-0.0.1-SNAPSHOT
#拷贝war至目录下
ADD demo-0.0.1-SNAPSHOT.war /usr/testimage/tomcat/webapps/demo-0.0.1-SNAPSHOT
#切换镜像的目录,进入/usr/testimage/tomcat/webapps目录
WORKDIR /usr//testimage/tomcat/webapps/demo-0.0.1-SNAPSHOT
#解压war包并删除war包
RUN jar -xvf demo-0.0.1-SNAPSHOT.war
RUN rm -rf demo-0.0.1-SNAPSHOT.war
新建api_image打包任务
ps:这里需要ssh 插件,插件对jenkins版本有要求,如不满足,请升级jenkins版本
在部署Jenkins的机子上登录Harbor仓库
推送镜像至仓库前需要进行认证
输入账号、密码
docker login 192.168.92.139
配置SSH hosts
在系统管理-系统配置里进行ssh设置
设置丢弃旧的构建与参数化构建
配置ssh 打包脚本
DATE=`date +%Y%m%d%H%M%S`
cd /usr/local/testjar/${IMAGE_NAME}
docker build --no-cache -t ${IMAGE_NAME}:$DATE .
sleep 1
docker tag ${IMAGE_NAME}:$DATE 192.168.92.139/library/${IMAGE_NAME}:$DATE
docker push 192.168.92.139/library/${IMAGE_NAME}:$DATE
sleep 1
docker rmi ${IMAGE_NAME}:$DATE
sleep 1
docker rmi 192.168.92.139/library/${IMAGE_NAME}:$DATE