
一、前言本文使用到docker、gitlab、harbor、k8s以及Kubesphere这些在以前文章中已经部署过可以作为参考GitlabJenkinsDockerHarborK8s集群搭建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-runnergitlab-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-sshmachine, kubernetes, custom, docker, parallels, shell, dockermachine: docker # 如果上面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.skiptrue - 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如果kubesphere/builder-maven:v3.1.0镜像下载过慢或失败可以使用下面Dockerfile文件生成自定义镜像替换kubesphere/builder-maven:v3.1.0# 基于官方 Maven 镜像构建 FROM maven:3.9.4-eclipse-temurin-17-alpine # 安装 Docker CLI 客户端 # Alpine Linux 使用 apk 包管理器 RUN apk add --no-cache \ docker-cli \ rm -rf /var/cache/apk/* # 验证安装是否成功 RUN docker --version # 设置工作目录 WORKDIR /app修改pom.xml如果.gitlab-ci.yml注释掉 - docker build -t 192.168.163.156/demo/demo:0.0.1 .可以不修改pom.xml四、提交代码到gitlab五、新建分支develop创建分支后触发CI/CD查看构建日志新建合并请求也会触发CI/CD六、使用Kubesphere重新创建项目