购买之前请认真阅读【购买须知】之后,在进行下单购买!由于是虚拟商品购买之后不接受任何理由的退
一、流程介绍
- 开发人员将写好的代码提交到代码仓库。SVN或者GitLab
- Jenkins去GitLab仓库拉取代码,拉取到对应的Job工作空间,然后执行源码编译、构建,将源码打包成Jar包;然后根据
Dockerfile
进行镜像构建,上传镜像到Harbor仓库 - 上传镜像后,Jenkins执行接下来的流程,通过SSH方式调用前后端服务器进行项目的部署
二、环境介绍
服务器名称 | 服务器IP | 所需软件 |
GitLab | 192.168.66.100 | GitLab |
Jenkins | 192.168.66.101 | Jenkins、Maven、Docker、npm |
Harbor | 192.168.66.102 | Docker、docker-compose |
Sonarqube | 192.168.66.103 | Sonarqube |
WEB-SERVER | 192.168.66.104 | Docker |
WEB-Front | 192.168.66.105 | Docker |
三、安装GitLab
四、安装Jenkins
五、安装SonarQube
六、安装Harbor
七、设置流水线
1、所需插件下载
- Git、Gitlab相关插件:Git plugin、Gitlab Hook Plugin、GitLab Logo Plugin、GitLab Plugin、Git Parameter
- Pipeline插件:Pipeline
- SonarQube Scanner
文章来源(Source):https://www.dqzboy.com 插件:SonarQube Scanner for Jenkins - Credentials Binding插件:在Jenkins使用凭证管理功能Credentials Binding Plugin
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
项目管理软件,比如jira这种打通,变成项目和代码同步管理的解决方案呢 这个能否出一版最佳实践方案呢?
不提供方案,不好意思
项目管理软件,比如jira这种打通,变成项目和代码同步管理的解决方案呢
可以做,可以实现
如果要回退版本和做灰度发布要加什么怎么改呢 一头雾水
回退通过修改镜像tag实现,灰度需要前面加个nginx配合lua实现
我想了解一下 文章中的 Web-Server 和 Web-Front是用来做什么用的 没有看到具体的使用
后端与前端服务器
你好 想请问一下 那个jenkinsfile文件 58行中的 [email protected]:root/solo-b3log.git 这个git地址是哪里来的 是做什么用的
这个是项目git地址,改成你自己的,用来检出代码的
不知道我理解的是否正确。我看到后面会有git参数化构建,里面会填写相应的仓库地址。如果把仓库地址在jenkinsfile写死的话,那就用不到git参数化中的地址了,是不是以后每个项目的部署都需要写一个单独的jenkinsfile。最后会将jenkinsfile的仓库地址填写出来,如果写死的话,是不是配置一个项目的部署就需要创建一个相应jenkinsfile的仓库。
如果你们的项目已经做到了一定的标准化,那么你就可以将这些参数在jenkinsfike中设置为变量,然后参数化构建中定义变量并赋予值
好的 谢谢解答! 我去试一下。
下面参数化构建中填写的git地址是为了动态获取项目仓库下的所有分支信息的
老哥 你这个可以直接用于生产吗
这个就是我们线上环境使用的