美文网首页
GoCD 整行记(四):配置流水线

GoCD 整行记(四):配置流水线

作者: 小麻烦它爹 | 来源:发表于2021-04-02 19:00 被阅读0次

上篇文章我们已经完成了流水线的创建,并且能够编译一个 SpringBoot 项目

今天我将继续完善这条流水线,将我们编译好的 jar 包构建成 docker 镜像,并上传到 DockerHub 仓库

功能梳理

  1. 前面我们已经创建了 gocd-springboot-demo-pipelines 流水线(Pipeline),包含一个 build 阶段(Stage),包含一个 build 任务(Job),执行了一条命令(Task) ./gradlew clean build,这条命令会生成一个 jar

    已有的流水线
  2. 这个 jar 包会存储在 gocd-agent 容器的 /godata/pipelines/Pipeline 名称/项目名称/build/libs

    jar 包路径
  3. 将生成的 jar 包保存到本地 GoCD 服务的 Artifacts 仓库

  4. 新增一个阶段 build-publish-docker-image,完成以下工作

    1. 从本地 Artifacts 仓库 拉取 jar
    2. jar 包构建成 docker 镜像
    3. 将镜像推送到你的 DockerHub 仓库

配置 Artifact Stores

GoCD 整行记(零):基于 Docker 打造 CI/CD 流水线这篇文章中,我们在启动 gocd-server 时已经安装了一个插件 docker-registry-artifact-plugin,这个插件可以帮助我们将 docker 镜像推送到 DockerHub 仓库,使用前我们需要对这个插件配置一下

  1. ADMIN -> Artifact Stores 进入配置页面

    进入 Artifact Stores
  2. 点击 Add 按钮,开始配置

    配置 Artifact plugin for docker 插件
    • Registry Type: Others
    • Docker Registry Url: https://index.docker.io/v1/
    • Username: 你的 DockerHub 用户名
    • Password: 你的 DockerHub 密码
  3. 点击 Save 按钮,保存配置

修改流水线配置

保存生成的 jar 包

  1. 进入 gocd-springboot-demo-pipelines -> build -> build -> ARTIFACTS 配置界面
Artifacts 配置界面
  • 选中 Build
  • 点击 Add Artifact 按钮
  1. 配置 Artifact


    配置 Build Artifact
    • Source:这里要填写的是 jar 包的位置,参考:gocd-springboot-demo/build/libs/gocd-springboot-demo.jar
    • Destination:填写保存到 gocd-server 容器的位置:参考 gocd-springboot-demo
    • 这两个路径都是相对路径
  2. 点击 SAVE 按钮,保存配置

  3. 运行一下 Pipeline ,验证配置结果

Artifact 结果

根据图中的路径,可以看到生成的 jar 包已经在 Artifacts 中了

新增构建 docker 镜像阶段

  1. 进入 pipelineStage 编辑界面,点击 Add new stage 按钮
    Stage 编辑界面
  1. 配置新创建的 Stage ,同时创建一个的 JobTask,这个 Task 功能就是构建一个 jar 包的 docker 镜像

    注意,此处执行的命令依赖 Dockerfile 去构建 docker 镜像,gocd-springboot-demo 工程已经包含了这个文件

配置 build-publish-docker-image Stage
  • Stage name:build-publish-docker-image

  • Job Name:build-docker-image

  • Task Type:Custom Command

  • Command:docker

  • Arguments:

    build
    -t
    hezhong0711/gocd-springboot-demo # 此处替换为你创建 DockerHub repository 名称
    .
    
  • Working Directory:这个是保存代码的路径,参考:gocd-springboot-demo

  1. 点击 Save 按钮

  2. 进入刚刚创建的 Tasks 配置界面

    build-docker-image Task 配置界面
  1. 在构建 docker 镜像前,我们需要先拉取 jar 包,因此,需要新增一个 Task

  2. 选中 Fetch Artifact ,点击 Add Task 按钮

新增 Fetch Artifact Task 配置 Fetch Artifact Task
  • Type of Fetch Artifact: GoCD
  • Pipeline:gocd-springboot-demo-pipelines
  • Stage:build
  • Job:build
  • Source:此处填写的是 jar 包保存的路径,参考:gocd-springboot-demo/gocd-springboot-demo.jar
  • 勾选上 Source is a file
  • Destination:拉取 jar包的保存路径,参考: gocd-springboot-demo/build/libs
  1. 点击 Save 按钮保存,按住 Tasks 前面的 8个灰点标志修改一下顺序,点击 Save 保存修改
修改 Task 顺序
  1. 运行一下 pipeline 查看运行结果
查看运行结果 运行日志
  1. 查看编译好的 docker 镜像

    进入 gocd-agent 容器,执行 docker images 查看编译好的镜像

docker 镜像查看

上传 docker 镜像

  1. 进入 gocd-springboot-demo-pipelines -> build-publish-docker-image -> build-docker-image -> Artifacts 配置界面

    配置 docker Artifact 界面
  2. 选中 External ,点击 Add Artifact 按钮

配置 docker Artifact
  • id:参考:docker
  • Store id:选中 docker-hub 这是我们在文章开支配置的 Artifact Stores
  • Image:这个是你在 DockerHub 上创建的 repository
  1. 点击 SAVE 按钮,保存配置

  2. 运行 Pipeline ,查看结果

    上传 docker 镜像日志

    日志中可以看到,GoCD 长在上传 docker 镜像

    任务完成后,可以在 DockerHub 上查看到你上传的 docker 镜像

DockerHub 上查看上传结果

至此,我们已经成功让 GoCD 将我们的 SpringBoot 工程自动编译成 jar 包,然后构建成 docker 镜像,最后上传到 DockerHub 镜像仓库。

后续文章我们将完成最后一步,将已经构建好的 docker 镜像部署到服务器上。

相关文章

网友评论

      本文标题:GoCD 整行记(四):配置流水线

      本文链接:https://www.haomeiwen.com/subject/wuuqkltx.html