DevOps ---- GitLab + Maven + Docker + Harbor

今天来记录一下自己这边儿做的CI,还没到CD那一步呢,不过就是添加一下构建后操作,没什么更大的难度,话不多说,整起来!

实施过程:

  • 使用Docker安装Jenkins.
  • 在GitLab中配置与Jenkins主机之间的秘钥对儿.
  • Jenkins中安装可能用到的插件.
  • 安装Harbor
  • Jenkins系统配置
  • 创建任务

1. 使用Docker安装Jenkins.

这个有点儿坑,刚开始在Docker Hub上找镜像下载下来发现实老版本了,要装稳定版已经换了位置了,如下。

~]# docker pull jenkins/jenkins:lts
~]# docker images
....
jenkins/jenkins                      lts
....
# 为什么要做赋权这一步操作,是因为jenkins这个镜像内部的Dockerfile内容指定了用户是jenkins,uid为1000,如果不赋权限,Jenkins是起不来的= =;(排第一个坑)
~]# chown -R 1000:1000 /mnt/docker/jenkins
~]# docker run --name myjenkins -d --restart=always -p 8000:8080 -v /mnt/docker/jenkins/:/var/jenkins_home jenkins/jenkins:lts
~]# docker ps -l # 会查看到最近刚启动的容器
~]# docker logs -f myjenkins # 跟踪jenkins启动日志
接下来Jenkins就是界面化了,直接依照顺序与说明进行就可以

2.在GitLab中配置与Jenkins主机之间的秘钥对儿.

这个位置要填写的公钥是Jenkins那台服务器上的公钥,如果没有生成的话要先手动生成一下;

~]# ssh-key-gen      #一路回车就可以
~]# cat ~/.ssh/id_rsa.pub # 将cat到的内容复制到下图中的4号位置并添加

 3.Jenkins中安装可能用到的插件.

  • Maven Integration plugin      # 用来创建Maven项目
  • Docker plugin                        # 用于集成Jenkins和Docker
  • CloudBees Docker Build and Publish plugin # 支持构建基于Dockerfile的项目,以及将构建的镜像发布到docker私有仓库
  • Build Timestamp Plugin        # 全局变量日期

还有一些插件,因为我这是做完了项目写的,所以也没啥印象了,到时候你们看截图里如果没有我这点的东西的话就去下载就好。

4.安装Harbor

看我另一篇博客有过程:https://www.cnblogs.com/k-free-bolg/p/11060611.html

当中的harbor.cfg中的hostname建议使用ip地址,不然主机名的话可能还要配置hosts文件才可以

5. Jenkins系统配置

  a) 首先要配置maven,而且这个maven让他自己安装就可以,因为我这里安装完了,所以没有截图了;

  b) 配置全局变量时间,当部署时不输入版本号的时候,默认以时间作为镜像的tag(如下);

   c) 配置Docker云(拉到最下面可以看到,点进去)

  点进来之后就会看到如下图的这些内容,进行配置(这个Docker Host URI是在docker服务器上改的)

  /usr/lib/systemd/system/docker.service 按图中修改,端口号自定义

  

 

   配置完成后可在下图中的Docker中看到当前运行的容器

6. 创建任务

  a) 根据项目名创建所需要得项目,配置可选分支功能;

   b)增加字符参数,为的是将值作为镜像的标签,方便分类版本,默认为当天日期(也是在参数化构建过程中配置)

   c) 配置项目Git地址(记得配置凭据,将jenkins宿主机上的私钥写进去即可)

   d) 配置maven命令及构建后操作(Dockerfile可在jenkins的工作目录中写)

 

   e) 开始构建并上传至Harbor(从图中可以看出,最后构建是成功的,且成功上传至了Harbor)

 这就是整个自动化构建的过程啦,后续补全部署!

原文地址:https://www.cnblogs.com/k-free-bolg/p/12935674.html