一、前言

本文使用到docker、gitlab、harbor、k8s以及Kubesphere,这些在以前文章中已经部署过,可以作为参考

Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台-CSDN博客

k8s可视化管理界面Kubesphere安装配置-CSDN博客

最终达到效果为,代码提交至master分支后,将master分支合并到develop分支,会触发CI/CD,进行自动打包、生成镜像、上传镜像到harbor镜像仓库,然后在Kubesphere界面重新部署项目;

二、docker安装部署gitlab-runner

拉取gitlab-runner镜像

docker pull gitlab/gitlab-runner:latest

运行gitlab-runner容器

docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

进入 gitlab-runner容器

docker exec -it gitlab-runner bash

 注册gitlab-runner

gitlab-runner register

查看gitlab URL和注册令牌

 

gitlab-runner register

# 输入Gitlab实例的地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
http://192.168.163.155/

# 输入token
Please enter the gitlab-ci token for this runner
xxxxxxxx

# 输入描述信息
Enter a description for the runner:
[2f5631485bf3]: this is the description

# 输入tag
Enter tags for the runner (comma-separated):
test_tag

# 输入Ruuner的执行者
Enter an executor: docker-ssh, ssh, virtualbox, docker-ssh+machine, kubernetes, custom, docker, parallels, shell, docker+machine:
shell

# 如果上面executor为docker,需要你在后续项目根部的.gitlab-ci.yml中  指定具体docker版本
#Enter the default Docker image (for example, ruby:2.6):
#alpine:latest

 推出容器 修改配置文件

vim /srv/gitlab-runner/config/config.toml 
"/usr/bin/docker:/usr/bin/docker", "/var/run/docker.sock:/var/run/docker.sock","/root/.m2/repository:/root/.m2"

"/usr/bin/docker:/usr/bin/docker", "/var/run/docker.sock:/var/run/docker.sock",为了在.gitlab-ci.yml中使用docker命令

 "/root/.m2/repository:/root/.m2" 将依赖的jar映射到宿主机上 避免每次都重新下载jar包

重启gitlab-runner容器

docker restart gitlab-runner 

这样说明部署成功

三、在spring boot项目中配置.gitlab-ci.yml

项目根目录下创建 .gitlab-ci.yml 文件,内容如下:

stages:
  - build-image
build-image:
  image: kubesphere/builder-maven:v3.1.0 #该镜像中包含了maven和docker
  stage: build-image
  script:
    - mvn clean package -Dmaven.test.skip=true
    - docker login 192.168.163.156 -u admin -p root123456
    - docker build  -t 192.168.163.156/demo/demo:0.0.1 .
    - docker push 192.168.163.156/demo/demo:0.0.1
  allow_failure: false
  only:
    - develop #指定那个分支触发cicd

修改pom.xml

四、提交代码到gitlab

五、新建分支develop

创建分支后触发CI/CD

查看构建日志

新建合并请求也会触发CI/CD

六、使用Kubesphere重新创建项目

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐