如何新建一个jenkins任务构建front服务的镜像?

如题

已邀请:

本说明仅适用于基于NCHOME构建以下服务,如需构建其他服务,请搜索对应服务名:

front


基本场景:

开发者中心:10.10.18.10

镜像仓库为:10.10.18.15

jenkins与nchome部署在同一服务器

nchome:/data/ncc/ncchome

拆分的微服务home:/data/ncc/ncchome_front

补丁目录:/data/patch/patch_front/war/home


如上述目录或条目与实际业务部署不符,请对应修改下方脚本中的内容。


1、登录控制台,点击左侧“新建Item”,进入项目创建面板。创建名为“test-front”的任务,在任务详情界面,勾选“参数化构建”(This project is parameterized) ,并增加如下参数:

名称:SV_APP_NAME
默认值:front
描述:这里是业务镜像名称。本业务专供front使用,默认为front
名称:IUAP_ADDR
默认值:空
描述:构建目标环境的开发者中心地址(仅IP),可以直接在任务配置界面填写,实现预置。
名称:HARBOR_ADDR
默认值:空
描述:构建目标环境的镜像仓库地址(仅IP),可以直接在任务配置界面填写,实现预置。


4、在“构建”栏目,选择执行脚本,填写业务服务构建脚本





附参考脚本:

##变量定义
NC_APP_DIR=/data/ncc/ncchome
SV_APP_DIR=/data/ncc/nchome_${SV_APP_NAME}
VERSION="10."`date '+%Y%m%d%H%M%S'`

##指定jenkins构建服务器目标Harbor
sed  -i "/reg.yyuap.io/c${HARBOR_ADDR} reg.yyuap.io" /etc/hosts

##配置环境变量                                                                                   
export JAVA_HOME=/data/ncc/jdk                                                                      
export PATH=/usr/local/bin:/data/ncc/jdk/bin:$PATH

##拆分nchome
cd ${NC_APP_DIR}
java -jar spliter.jar ${SV_APP_NAME}

##war包删除jar包
find ./ -type f -name "spring-aop-3.0.5*" -or -name "jackson-annotations-2.0.1.jar" -or -name "jackson-annotations-2.6.0.jar" -or -name "jackson-core-2.0.1.jar" -or -name "jackson-core-2.6.3.jar" -or -name "jackson-databind-2.0.1.jar" -or -name "jackson-databind-2.6.3.jar" -or -name "spring-asm-3.0.5*" -or -name "spring-context-support-3.0.5*" -or -name "spring-expression-3.0.5*" -or -name "spring-webmvc-3.0.5*"    -or -name "jackson-mapper-asl-1.9.9.jar" -or -name "handlerbars-proto-0.6.0.jar" |xargs rm -f

##进入拆分完的目录中,新建Dockerfile
cd ${SV_APP_DIR}

echo "FROM reg.yyuap.io/middleware/nginx:1.13.5
COPY nginx.conf /etc/nginx
COPY nccloud /usr/share/nginx/nccloud
RUN chmod 777 /etc/nginx/nginx.conf
EXPOSE 80" >./Dockerfile


##生成、推送镜像到镜像仓库                                                                     
docker build  .  -t   ${HARBOR_ADDR}/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/${SV_APP_NAME}:${VERSION}
docker login  -u  admin -p Harbor12345  ${HARBOR_ADDR}
docker push ${HARBOR_ADDR}/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/${SV_APP_NAME}:${VERSION}             #推送到镜像仓库 

##给开发者中心发送post请求,使开发者中心关联镜像
curl -X POST "http://${IUAP_ADDR}/app-docker-registry/api/registry/push?providerId=c87e2267-1001-4c70-bb2a-ab41f3b81aa3&userName=%E7%AE%A1%E7%90%86%E5%91%98&userId=c87e2267-1001-4c70-bb2a-ab41f3b81aa3&imageName=${HARBOR_ADDR}/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/${SV_APP_NAME}&tag=${VERSION}"


5、保存后,在任务界面,点击"Bulid with Parameters" ,在右侧依次填写要构建镜像的开发者中心IP、镜像仓库IP,后点击开始构建,启动构建。



6、构建过程中,在任务的"控制台输出"菜单,可以查看任务的构建详情


http://nccloud.yytimes.com/uploads/files_user1/answer/5e78459a005f1300165.png



http://nccloud.yytimes.com/uploads/files_user1/answer/5e7846e756ca1567933.png



7、构建完成后,即可登录开发者中心,找到对应应用,在配置流水线选择镜像的栏目,选择新构建的镜像。效果参考下图:


http://nccloud.yytimes.com/uploads/files_user1/answer/5e78476723642912944.png


要回复问题请先登录注册