DevOps / Docker / GitLab / Jenkins / SonarQube / 云计算

Jenkins+Git+Harbor+Docker实现Sprint Boot项目的CICD

温馨提示:本文最后更新于2021-08-01 20:57:23,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 5月4日 · 2020年 · · · 本文8277个字,预计阅读21分钟 108443次已读

购买之前请认真阅读【购买须知】之后,在进行下单购买!由于是虚拟商品购买之后不接受任何理由的退货、换货、退款等要求!

一、流程介绍


Jenkins+Git+Harbor+Docker实现Sprint Boot项目的CICD-浅时光博客
  1. 开发人员将写好的代码提交到代码仓库。SVN或者GitLab
  2. Jenkins去GitLab仓库拉取代码,拉取到对应的Job工作空间,然后执行源原文链接:https://www.dqzboy.com码编译、构建,将源码打包成Jar包;然后根据Dockerfile进行镜像构建,上传镜像到Harbor仓库
  3. 上传镜像后,Jenkins执行接下来的流程,通过SSH方式调用前后端服务器进行项目的部署

二、环境介绍


服务器名称服务器IP所需软件
GitLab192.168.66.100GitLab
Jenkins192.168.66.101Jenkins、Maven、Docke文章来源(Source):浅时光博客r、npm
Harbor192.168.66.102Docker、docker-compose
Sonarqube192.168.66.103Sonarqube
WEB-SERVER192.168.66.104Docker
WEB-Front192.168.66.105Docker

三、安装GitLab


请参考文章【GitLab部署和实战教程】
文章来源(Source):https://www.dqzboy.com
原文链接:https://www.dqzboy.com

四、安装Jenkins


请参考文章【Jenkins部署和实战教程】

五、安装SonarQube


请参考文章【SonarQube安装与汉化教程】

六、安装Harbor


请参考文章【Harbor安装与配置】

Harbor安装与配置

2020-3-24 0

七、设置流水线


1、所需插件下载

2、创建Dockerfile

  • 在Jenkins Job工作原文链接:https://www.dqzboy.com空间下的指定的项目下创建dockerfile文件,一般该文件创建好后不会更改,由于后端项目需要Java环境,这里我们需要先把oracle jdk镜像下载到本地,然后在push到私有harbor仓库中

2.1:下载公共镜像

  • 先登入到docker hub公有仓库,然后进行镜像下载
[root@jenkins ~]# docker login -u用户 -p密码    #默认不加地址则是访问docker hub

#下载公共镜像
[root@jenkins ~]# docker pull store/oracle/serverjre:8

#打标签
[root@jenkins ~]# docker tag store/oracle/serverjre:8 私有仓库地址/images/oracle-jdk8:v1

#上传到私有仓库
[root@jenkins ~]# docker push 私有仓库地址/images/oracle-jdk8:v1
隐藏内容,需要支付积分查看
30积分VIP 8 折 永久VIP免费

已有31人支付

End

6、执行构建任务

Jenkins+Git+Harbor+Docker实现Sprint Boot项目的CICD-浅时光博客
Jenkins+Git+Harbor+Docker实现Sprint Boot项目的CICD-浅时光博客

7、查看部署情况

Jenkins+Git+Harbor+Docker实现Sprint Boot项目的CICD-浅时光博客



本文作者:浅时光
原文链接:https://www.dqzboy.com/2334.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
转载时请以超链接形式标明文章原始出处和作者信息

14 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. b166er北京2021-4-12 · 17:33

    项目管理软件,比如jira这种打通,变成项目和代码同步管理的解决方案呢

    • 浅时光
      浅时光上海2021-4-12 · 17:58

      可以做,可以实现

  2. 烟火已购广东·深圳2021-4-2 · 3:51

    如果要回退版本和做灰度发布要加什么怎么改呢 一头雾水

    • 浅时光
      浅时光上海2021-4-2 · 7:13

      回退通过修改镜像tag实现,灰度需要前面加个nginx配合lua实现

  3. 专业小白未知2021-1-24 · 12:44

    我想了解一下 文章中的 Web-Server 和 Web-Front是用来做什么用的 没有看到具体的使用

    • 浅时光
      浅时光上海2021-1-24 · 12:45

      后端与前端服务器

  4. sandy未知2020-10-21 · 16:01

    你好 想请问一下 那个jenkinsfile文件 58行中的 git@192.168.66.30:root/solo-b3log.git 这个git地址是哪里来的 是做什么用的

    • 浅时光
      浅时光上海2020-10-21 · 16:07

      这个是项目git地址,改成你自己的,用来检出代码的

      • sandy未知2020-10-21 · 16:14

        不知道我理解的是否正确。我看到后面会有git参数化构建,里面会填写相应的仓库地址。如果把仓库地址在jenkinsfile写死的话,那就用不到git参数化中的地址了,是不是以后每个项目的部署都需要写一个单独的jenkinsfile。最后会将jenkinsfile的仓库地址填写出来,如果写死的话,是不是配置一个项目的部署就需要创建一个相应jenkinsfile的仓库。

        • 浅时光
          浅时光上海2020-10-21 · 16:17

          如果你们的项目已经做到了一定的标准化,那么你就可以将这些参数在jenkinsfike中设置为变量,然后参数化构建中定义变量并赋予值

          • sandy未知2020-10-21 · 16:20

            好的 谢谢解答! 我去试一下。

            • 浅时光
              浅时光上海2020-10-21 · 16:21

              下面参数化构建中填写的git地址是为了动态获取项目仓库下的所有分支信息的

  5. 旧戏书未知2020-5-6 · 14:59

    老哥 你这个可以直接用于生产吗

    • 浅时光
      浅时光上海2020-5-6 · 15:00

      这个就是我们线上环境使用的

本站已稳定运行: | 耗时 0.534 秒 | 查询 68 次 | 内存 14.26 MB