DevOps / Docker / GitLab / Jenkins / SonarQube / 云原生

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

浅时光博客 · 5月4日 · 2020年 · · · 20.7w 次已读

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

一、流程介绍


  1. 开发人员将写好的代码提交到代码仓库。SVN或者GitLab
  2. Jenkins去GitLab仓库拉取代码,拉取到对应的Job工作空间,然后执行源码编译、构建,将源码打包成Jar包;然后根据Dockerfile进行镜像构建,上传镜像到Harbor仓库
  3. 上传镜像后,Jenkins执行接下来的流程,通过SSH方式调用前后端服务器进行项目的部署

二、环境介绍


服务器名称服务器IP所需软件
GitLab192.168.66.100GitLab
Jenkins192.168.66.101Jenkins、Maven、Docker、npm
Harbor192.168.66.102Docker、docker-compose
Sonarqube192.168.66.103Sonarqube
WEB-SERVER192.168.66.104Docker
WEB-Front192.168.66.105Docker

三、安装GitLab


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

四、安装Jenkins


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

五、安装SonarQube


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

六、安装Harbor


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

Harbor安装与配置

2020-3-24 原文链接:https://www.dqzboy.com 0

七、设置流水线


1、所需插件下载

2、创建Dockerfile

  • 在Jenkins Job工作空间下的指定的项目下创建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
隐藏内容,需要支付积分查看
20积分VIP 8 折 永久VIP免费

已有36人支付

End

6、执行构建任务

7、查看部署情况


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/2334.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

16 条回应

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

  1. wx_970f0fe071北京2022-8-18 · 18:07

    项目管理软件,比如jira这种打通,变成项目和代码同步管理的解决方案呢 这个能否出一版最佳实践方案呢?

    • 浅时光博客2022-8-18 · 18:08

      不提供方案,不好意思

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

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

    • 浅时光博客2021-4-12 · 17:58

      可以做,可以实现

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

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

    • 浅时光博客2021-4-2 · 7:13

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

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

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

    • 浅时光博客2021-1-24 · 12:45

      后端与前端服务器

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

    你好 想请问一下 那个jenkinsfile文件 58行中的 [email protected]: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地址是为了动态获取项目仓库下的所有分支信息的

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

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

    • 浅时光博客2020-5-6 · 15:00

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