docker 搭建gitlab gitlab-runner实现 CI/CD

一、前言

本文使用到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重新创建项目

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitLab-RunnerGitLab提供的一个开源工具,可以用于在GitLab上运行CI/CD任务。通过GitLab-Runner,可以方便地实现自动化的构建、测试、集成和部署等任务。 下面是一些使用GitLab-Runner打造锋利的CI/CD的方法: 1. GitLab-Runner安装和配置:首先需要安装GitLab-Runner,并将其配置到GitLab服务器上。可以通过Docker容器、二进制包或源码编译的方式安装GitLab-Runner,然后在GitLab服务器上注册Runner,并设置Runner的执行环境和权限等参数。 2. 编写CI/CD脚本:在GitLab上创建项目,并在项目中编写CI/CD脚本,定义任务的执行流程和步骤。可以使用GitLab提供的CI/CD工具和插件,也可以使用第三方工具和脚本库。 3. 构建、测试和集成:通过GitLab-Runner执行CI/CD任务,自动化构建、测试和集成代码,并生成测试报告和代码覆盖率报告等文档。可以使用各种编程语言和框架,如Java、Python、Ruby、Node.js等。 4. 部署和发布:通过GitLab-Runner将代码部署到目标服务器上,并执行自动化发布流程。可以使用容器化技术、配置管理工具、自动化部署工具等实现高效、可靠的部署和发布。 5. 监控和反馈:通过GitLab的监控和反馈机制,及时发现和解决CI/CD任务中的问题和错误,并持续优化任务的执行效率和稳定性。可以使用各种监控工具和日志分析工具,如Prometheus、Grafana、ELK等。 总之,使用GitLab-Runner打造锋利的CI/CD,可以提高开发和运维的效率和质量,降低项目的风险和成本,实现持续交付和快速迭代的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值