在Jenkins界面中构建并执行Pipeline
构建Pipeline
本示例将使用Jenkins界面构建一个Pipeline。该Pipeline的内容是从代码仓中拉取代码,将代码打包成镜像,并推送到SWR镜像仓库中。
- 在Jenkins Dashboard界面右侧导航栏单击“New Item”。
- 输入任务名称,并选择创建Pipeline。
图1 创建Pipeline
- 仅配置Pipeline脚本,其他保持默认。
图2 配置Pipeline脚本
以下Pipeline脚本仅供您参考,您可根据自身业务自定义脚本内容,更多语法信息请参见Pipeline。
def swr_region = "cn-east-3" def organization = "container" def git_repo = "http://github.com/xxx.git" def app_git_branch = "master" podTemplate( inheritFrom: 'jenkins-agent', // 请替换为5中创建的Pod Template名称 cloud: 'ap-test' // 请替换为4中创建的Cloud名称 ) { // 拉取代码仓中的代码 node(POD_LABEL) { stage('拉取代码') { echo "pull clone" git branch: "${app_git_branch}", url: "${git_repo}" } // 利用maven容器将代码仓中拉取的代码打包(该打包方式仅适合Java,其他语言请更换打包方式) container('maven'){ stage('代码打包') { echo "build package" sh "mvn clean package -DskipTests" } } // 利用kaniko容器将打包后的代码推送至SWR中,并将镜像命名为tomcat container('kaniko'){ stage('镜像推送') { echo "build images and push images" sh "/kaniko/executor -f Dockerfile -c . -d swr.${swr_region}.myhuaweicloud.com/${organization}/tomcat:${BUILD_ID} --force" } } } }
表1 Pipeline脚本参数说明 参数
示例
说明
swr_region
cn-east-3
表示SWR镜像仓库的区域。
说明:该SWR镜像仓库用于存放代码打包的镜像,区域需要与3中的区域一致。
organization
container
表示SWR中的组织名称,该组织名称可以根据实际需求进行选择。
git_repo
https://github.com/xxx.git
表示代码存放的具体地址,即代码库地址。
app-git-branch
master
表示代码库的分支。
- 脚本配置无误后,单击“Save”。
执行Pipeline并查看运行结果
执行Pipeline后,集群自动创建名为“pipe-xxx”的Pod实例,该Pod会根据“Pod Template”中的信息创建三个容器,分别是jnlp、kaniko和maven。该Pod会依次完成从代码仓拉取代码、将代码打包成镜像和将镜像推送到SWR镜像仓库的操作,完成后自动删除。