docker 搭建gitlab gitlab-runner实现 CI/CD
本文使用到docker、gitlab、harbor、k8s以及Kubesphere,这些在以前文章中已经部署过,可以作为参考最终达到效果为,代码提交至master分支后,将master分支合并到develop分支,会触发CI/CD,进行自动打包、生成镜像、上传镜像到harbor镜像仓库,然后在Kubesphere界面重新部署项目;
一、前言
本文使用到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重新创建项目
更多推荐
所有评论(0)