SVN+Gradle+Docker场景迁移
本节介绍的迁移场景如下:
- 编程语言:Java。
- 源码托管在SVN私有库中。
- Jenkins任务使用Maven构建工具。
- 运行在Jenkins服务器的Linux节点。
- 部署目标机需要提前安装Docker环境。
- 镜像管理使用搭建的HarBor仓库。
本节中各迁移步骤涉及到的服务及功能如下表所示:
迁移步骤 |
Jenkins |
DevCloud |
---|---|---|
步骤一:源码管理迁移 |
SVN托管 |
DevCloud代码仓库服务托管 |
步骤二:镜像仓迁移 |
自建HarBor镜像仓 |
华为云容器镜像服务 |
步骤三:Gradle构建迁移 |
Jenkins的任务中选择Gradle构建步骤 |
DevCloud中创建Gradle构建任务 |
步骤四:构建镜像迁移 |
通过PostSteps执行shell命令构建镜像,并上传HarBor镜像仓 |
DevCloud中制作镜像并推送到镜像仓库 |
步骤五:容器部署迁移 |
在授信主机上执行shell命令部署 |
通过DevCloud提供的原子步骤组合部署 |
步骤一:源码管理迁移
本节采用代码仓库是自建的GitLab代码仓库,如下图所示:
在新进行构建任务迁移前,源码迁移可采取以下两种方式:
- 方式一:通过华为云DevCloud的提供的导入外部仓库功能,直接进行线上导入。
- 方式二:先将SVN上的代码仓库下载到本地,然后通过GitBash命令行上传到华为云DevCloud代码仓库。
两种源码迁移方式的详细操作步骤,请参考SVN迁移至DevCloud。
步骤二:镜像仓迁移
进入DevCloud项目,在“确定”保存。
页面中单击 ,在弹出的页面中输入服务扩展点名称、HarBor镜像仓地址、用户名、密码等信息,单击
相较于HarBor镜像仓,华为云容器镜像服务(下文统称为SWR)具有操作简单、即开即用等特点,您可已根据实际场景需要,选择是否进行SWR迁移。如需对SWR了解更多,请参考SWR帮助中心。
若进行SWR迁移,上图中请填写对应SWR镜像仓信息。
步骤三:Gradle构建迁移
- 构建任务迁移
本节采用的案例中,Jenkins使用的Gradle构建环境版本信息如下:
构建环境
Jenkins配置路径
本文案例使用的版本
Gradle
系统管理 > 全局工具配置 > Gradle
Gradle Wrapper
JDK
系统管理 > 全局工具配置 > JDK
1.8
操作步骤如下:
- 进入DevCloud项目,在“新建任务”,输入任务名称,单击“下一步”。 页面单击
- 源码源选择“DevCloud”,源码仓库选择在步骤一中迁移的仓库,分支选择“master”,单击“下一步”。
- 构建模板选择“Gradle”,单击“确定”,系统将自动跳转至“构建步骤”页面。
- 编辑构建步骤“Gradle构建”:
- 根据Jenkins中的构建环境,选择相应的Gradle与JDK版本。
- 根据Jenkins待迁移任务“构建”页面的 s命令,在命令窗口输入相应的构建命令。
- 构建包迁移
- 进入Jenkins待迁移任务,在“构建后操作”页面查看归档路径。
- 返回DevCloud构建任务,编辑构建步骤“上传软件包到软件发布库”,根据Jenkins设置输入构建包路径。
- 单击
,添加步骤“上传软件包到软件发布库”,构建包路径输入“Dockerfile”,单击“保存”。
- 进入Jenkins待迁移任务,在“构建后操作”页面查看归档路径。
步骤四:构建镜像迁移
本节采用的案例中,Jenkins使用的Docker构建环境版本信息如下:
构建环境 |
本文案例使用的版本 |
---|---|
Docker |
19.03.8 |
- 主机组迁移
本节使用的案例中,采用部署任务进行构建镜像的迁移,创建部署任务前需要配置主机。
- 登录Jenkins,在“SSH remote hosts”板块信息。
- 进入DevCloud项目,在“新建主机组”,根据页面提示输入必要信息,单击“保存”。 页面单击
- 单击“添加主机”,在弹窗中根据Jenkins设置输入主机信息,单击“添加”保存。
- 登录Jenkins,在“SSH remote hosts”板块信息。
- 构建任务迁移
- 进入Jenkins待迁移任务,在“构建”页面,查看“执行shell”板块中的命令窗口。
- 在“General”页面查看参数设置。
- 进入DevCloud项目,在“新建任务”,输入任务名称,单击“下一步”。 页面单击
- 部署模板选择“Docker应用部署(Linux)”,单击“下一步”,系统将自动跳转至“部署步骤”页面。
- 选择“参数设置”页签,根据Jenkins配置添加参数。
- 选择“部署步骤”页签:
- 安装Docker:选择前面创建的主机组,并根据需要选择在主机上安装的Docker版本。
- 登录Docker镜像仓:镜像仓选择步骤二中迁移的HarBor镜像仓接入点。
- 选择部署来源(含Dockerfile文件):选择源类型为“构建任务”,并选择步骤三中迁移的构建任务,填写下载到主机的部署目录。
- 构建镜像:Dockerfile文件路径输入步骤“选择部署来源(含Dockerfile文件)”中的下载目录,并根据Jenkins命令行输入执行参数。
- 镜像打标签:参考Jenkins配置输入执行参数。
- 镜像上传到镜像仓:参考Jenkins配置输入执行配置。
部署步骤“镜像打标签”及“镜像上传到镜像仓”中所参考的Habor推送镜像配置如下:
- 进入Jenkins待迁移任务,在“构建”页面,查看“执行shell”板块中的命令窗口。
步骤五:容器部署迁移
- 进入Jenkins待迁移任务,在“构建”页面查看“Execute shell script on remote host using ssh”版块中的命令行。
- 根据Jenkins配置,设置部署任务步骤。
- 在步骤“镜像上传到镜像仓”后添加步骤“执行Docker命令”:
- 修改步骤显示名称为“停止容器”,命令选择“stop”。
- 第一次执行的时候此步骤时,并未创建容器,所以此步骤会执行失败,因此需勾选“失败后继续运行”。
- 再一次添加步骤“执行Docker命令”:
- 修改步骤显示名称为“删除容器”,命令选择“rm”。
- 第一次执行的时候此步骤时,并未创建容器,所以此步骤会执行失败,因此需勾选“失败后继续运行”。
- 编辑“步骤创建并启动容器”:参考Jenkins配置输入执行参数。
- 在步骤“镜像上传到镜像仓”后添加步骤“执行Docker命令”:
