0


gitea+drone关联部署以及CICD启动

1、关于Gitea

Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。易于安装,它可以运行在任何 Go 能够编译的平台:Windows, macOS, Linux, ARM 等等,另外Gitea 拥有很低的系统需求,最低的系统硬件要求为一个廉价的树莓派。

2 、关于Drone

Dron是一个现代化的持续集成平台,它使用强大的云原生pipeline引擎自动化构建、测试和发布工作流。Drone 与多个源代码管理系统无缝集成,包括 GitHub、GitHubEnterprise、Bitbucket、GitLab和Gitea;它的每个构建都在一个隔离的 Docker 容器中运行;另外它也支持插件,可以使用你熟知的语言轻松的扩展它们

drone占用资源特别少我的虚拟机单核2G内存占用内存仅1.5% 占用cpu仅0.3%

关于2者的安装和部署都依赖于docker环境,我们采用docker-compose的方式部署也需要安装相应的docker-compose

该环境基于CentOS-7-x86_64-DVD-2009 系统完成搭建

Centos安装docker

当前在自己机器上安装的docker version版本为20.10.21 API VERSION为 1.4.1

提供在线安装方法

第一步:安装一组工具

sudo yum install -y yum-utils

第二步:设置 yum 仓库地址

sudo yum-config-manager \

--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

sudo yum-config-manager \

--add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第三步:更新 yum 缓存

sudo yum makecache fast #yum 是包管理器

第四步:安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

启动docker服务

systemctl start docker

查看Docker状态

查看docker是否启动了,是否是运行状态

systemctl status docker

设置Docker开机自启

systemctl enable docker

查看docker 版本

docker version

如果当前用户执行无权限请执行命令用以将用户添加进docker用户组中

# sudo gpasswd -a $USER docker 
# newgrp docker

考虑到现场安装应该都是离线安装

提供docker的tar包

暂时无法在飞书文档外展示此内容

离线安装docker

tar -zxvf docker-20.10.21.tgz mv docker/* /usr/bin/ vi /etc/systemd/system/dockdatter.service
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target

保存后

chmod +x /etc/systemd/system/docker.service #赋权 systemctl enable docker.service #开机启动 systemctl start docker #启动docker docker -v #查看版本

Debian安装docker

参考此教程

https://blog.csdn.net/weixin_43961117/article/details/126125976

如遇apt-get update失败可能是镜像源问题,修改国内镜像源

vi /etc/apt/source.list

添加阿里的镜像

暂时无法在飞书文档外展示此内容

安装docker-compose

当前测试使用的docker-compose版本为v2.4.1

下载

sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 下载的文件会输出到 /usr/local/bin/docker-compose

授予权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本

docker-compose version

安装离线版本

离线安装包

sudo mv docker-compose /usr/local/bin/ sudo chmod +x /usr/local/bin/docker-compose docker-compose -v

准备好docker和docker-compose环境之后

安装gitea

安装gitea可以通过docker-compose.yml文件 通过命令

docker-compose up -d

直接启动

暂时无法在飞书文档外展示此内容

启动之后docker-compose logs查看日志如遇到启动失败,无法提供安装文件路径权限等报错,

可能是docker的版本过低导致不兼容导致

启动成功gitea之后,可以登陆了IP:port 访问。首次登录设置请将配置中的IP地址或者域名设置正确

登录之后创建库

配置gitea

点击个人中心设置

选择应用

输入创建OAuth2应用程序名称为drone

重定向地址为drone http://IP:PORT/login

点击创建应用

注意保存客户端id以及客户端秘钥这2个参数是维护在drone启动的docker-compose脚本中的

1、对应DRONE_GITEA_CLIENT_ID

2、对应DRONE_GITEA_CLIENT_SECRET

暂时无法在飞书文档外展示此内容

drone的启动docker-compose文件中 DRONE_RPC_SECRETdrone-server与drone-runner链接秘钥2者配置保持一致即可。同时登录的用户名密码需要是想要访问的库的管理员,不然无法激活webhook,则drone无法接收到库被激活的消息。配置文件中支持的通讯协议已实际情况配置

安装drone

内网工作站drone地址

192.168.2.120:8082

映射外网域名

http://drone.boyai.cn/

do 启动drone

drone和drone-run的image包

暂时无法在飞书文档外展示此内容

暂时无法在飞书文档外展示此内容

启动成功之后登录drone

点击应用授权

转跳登录

我们会看到关联的gitea中的仓库

在设置中请打开下图的开关后点击保存

推送.drone.yml文件

该文件可以简单的理解为,.drone.yml配置文件相当于一个.sh文件,部署操作配置在这个文件中,交给Drone引擎执行

该文件需要保存在文件的根目录下

暂时无法在飞书文档外展示此内容

这个时候仓库push之后,gitea会通过web钩子发送请求到drone

drone收到之后开始根据.drone.yml文件的内容开始执行后续操作

进入仓库点击设置

点击web钩子

通过web钩子可以设置触发drone构建的自定义事件

点击推送记录可以看到每次事件的请求以及响应内容,原则上,每一次推送代码都会自动触发一次

如果遇到推送失败如gitea和drone部署在同一台服务器的时候,两者之间无法直接访问可以通过

在gitea的配置文件/data/gitea/conf/app.ini 文件中增加

修改 /data/gitea/conf/app.ini 配置文件,确保存在如下配置

[webhook]

ALLOWED_HOST_LIST = 服务器IP

重启gitea之后即可访问成功

drone页面内容解析

每一次推送更新或者手动构建都可以看到每个仓库的更新内容以及构建时间

点击单个任务

可以看到每一步的操作以及日志

或者点击GRAPH VIEW观察流水线,点击任意节点可以看到节点的日志

此时已完成了镜像的构建

dorne.yml中将代码下载通过 master-push已将代码放在了服务器的/app/vue-manage-server路径下

通过docker images 在服务器中已可以看到

在drone.yml的最后一步执行了build的操作

到此drone自动构建基本结束,后续将根据具体项目修改Dockerfile 保证容器启动成功即可

budibase自动构建drone出现问题记录

ray-server的CI脚本 注释

teps: - name: TestPullCodeAndZip *# 步骤名称*image: appleboy/drone-ssh *# 使用镜像*settings: host: 192.168.2.120 username: test #登录用户 password: 6AlRXa port: 22 command_timeout: 300s script: - source /home/test/.pyenv/versions/ray-env/bin/activate #进入pyenv环境 - cd /home/test/boyai-ray-serve/ #进入代码地址 - git pull origin test #执行拉取 - export RAY_VERSION=$(git rev-parse HEAD) #获取拉取的版本sha256 将值从变量中替换到deply.yaml文件中 - sed 's/{RAY_VERSION}/'$RAY_VERSION'/' deploy/test/serve-deployments.yaml >> deploy/test/deploy.yaml - cd /home/test - zip -q -r /home/test/tmp/$RAY_VERSION.zip ./boyai-ray-serve #将代码打包存放在docker-compose文件映射的路径 - cd /home/test/boyai-ray-serve/ - serve deploy --address=http://0.0.0.0:52366 deploy/test/deploy.yaml #执行启动命令将zip包发进对应的ray-server - rm -rf deploy/test/deploy.yaml #删除这个创建的启动脚本防止后续拉取冲突 - exit #推出pyenv环境 when: event: [ push, pull_request ] branch: [ test ]
标签: gitea

本文转载自: https://blog.csdn.net/jiang06188/article/details/135089341
版权归原作者 jiang06188 所有, 如有侵权,请联系我们删除。

“gitea+drone关联部署以及CICD启动”的评论:

还没有评论