barge Build 镜像流程

225 阅读1分钟

一, 云效调用 barge 执行

barge build -y --skip-prepare -m woodpecker --build.language=java --build.tool=war --build.java.war=target/woodpecker.jar --build.operator=albert.lv --build.packageVersion=20210515112458 --titanPublishBillId=33840 --env=paas-test

二, barge 调用 paas 的 image/barge 接口

GET /paas-k8s-operation/application/v1/image/barge?projectName=%s&envType=%d"

请求参数

参数类型备注
projectNameString应用名
envTypeInteger环境类型(1:paas-test,2:paas-uat,3:paas-pro)

获取应用的基础镜像信息 image_to , image_from , docker_file , docker_ignore 等

响应参数

{
    "ret": 0,
    "msg": null,
    "errorCode": null,
    "from": "harbor102.test.ximalaya.com/common/alpine-runit-springboot:v0.0.8",
    "to": "harbor102.test.ximalaya.com/test/woodpecker",
    "dockerFileTemplate": "FROM {{.From}}\nRUN mkdir -p /srv\nADD {{.Jar}} /srv/",
    "dockerIgnore": "*\n!{{.Jar}}"
}

三, /image/barge 接口逻辑

projectName -> app -> baseImageId -> baseImage 和 dockerTemplate

四, build 并 push 镜像

barge 执行

docker build --pull --tag harbor102.test.ximalaya.com/test/woodpecker:20210515-112556
docker push harbor102.test.ximalaya.com/test/woodpecker:20210515-112556

推送镜像到harbor

五, barge 将镜像信息同步给 paas

POST /paas-k8s-operation/application/v1/build

POST 请求参数

参数类型备注
titanPublishIdLong部署单id
appNameString应用名
imageToString生成镜像地址
imageFromString基础镜像地址
deployOperatorString操作人
environmentString环境(paas-test,paas-uat,paas-pro)
packageVersionString版本号

post 请求调用 build 接口,将 build 后的镜像信息同步给 paas 存入 t_build_image 表中