在Jenkins界面中构建并执行Pipeline
构建Pipeline
在Jenkins界面中构建一个Pipeline。该Pipeline的内容是从代码仓中拉取代码,将代码打包成镜像,并推送到SWR镜像仓库中。
- 在当前界面左上方路径中单击“Dashboard”,进入在Jenkins Dashboard界面,在右侧导航栏中单击“New Item”。
- 输入任务名称test-pipe,并选择创建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”中的信息创建3个容器,分别是jnlp、kaniko和maven。该Pod会依次完成从代码仓拉取代码、将代码打包成镜像和将镜像推送到SWR镜像仓库的操作,完成后自动删除。
- 在左侧导航栏中单击“Build Now”,开始执行Pipeline任务。
- 返回CCE控制台,单击对应集群名称。在左侧导航栏中单击“工作负载”,选择“容器组”页签,可以看到Pipeline创建的Pod实例。
图3 新建的Pod实例
- 在新创建的Pod实例右侧单击“更多”,单击“容器列表”,可以看到按照“Pod Template”中的信息创建三个容器,即jnlp、kaniko和maven。
图4 新建容器
- 完成从代码仓拉取代码、将代码打包成镜像和将镜像推送到SWR镜像仓库的任务后,该Pod会自动删除,如图5所示。
- 进入SWR控制台,检查SWR镜像仓库是否有新推送的镜像tomcat。
图6 推送的镜像
后续操作:释放资源
如果您无需继续使用集群和ECS,请及时释放资源,避免产生额外的费用。
- 进入CCE控制台,在左侧导航栏中选择“集群管理”。
- 找到需要删除的集群,单击集群卡片右上角的,并单击“删除集群”。
- 在弹出的“删除集群”窗口中,根据页面提示删除相关资源。
在确认框中输入“DELETE”,单击“是”,开始执行删除集群操作。
删除集群需要花费1-3分钟,请耐心等候。集群列表中对应集群名称消失,则说明删除集群成功。
- 进入云服务器控制台,左侧导航栏单击“弹性云服务器”,找到对应的ECS,右侧单击“更多”,单击“删除”。
在删除界面中勾选“删除云服务器绑定的弹性公网IP地址”和“删除云服务器挂载的数据盘”,单击“下一步”。
图7 删除ECS
在确认框中输入“DELETE”,单击“确定”,开始执行删除ECS操作。
删除ECS需要花费0.5-1分钟,请耐心等候。ECS列表中对应ECS名称消失,则说明删除ECS成功。
图8 删除ECS确认