找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1167

积分

0

好友

167

主题
发表于 前天 08:15 | 查看: 4| 回复: 0

在开发一个类似ModelScope的AI模型托管平台时,我们需要为每个项目提供独立的代码仓库服务。

初期,我们选择了业界熟知的GitLab作为解决方案。然而,在部署运行后很快遇到了资源瓶颈:仅仅为了基础的代码托管功能,GitLab整套服务(包括主进程、PostgreSQL和Redis)运行一段时间后,内存占用就飙升到了接近10GB。对于我们的轻量级项目需求而言,这样的资源消耗显然过高,成为了一个沉重的负担。

因此,我们转向了Gitea——一个轻量级的自托管Git服务。这一替换效果显著:内存占用从约10GB大幅降低至600MB左右。更重要的是,Gitea提供了完整且功能强大的API接口,这使得我们能够将其深度集成到自己的AI平台业务流中,实现高度定制化。

本文将指导你如何使用Docker快速部署Gitea,演示如何创建和管理代码仓库,并介绍如何通过其REST API实现业务系统的深度集成。

图片

部署前置准备

图片

组件 是否必须 用途说明
数据库(MySQL / PostgreSQL / SQLite) ✅ 必须 存储核心业务数据:用户、仓库、Issue、PR、权限、LFS元信息等
S3 / MinIO(对象存储) ➖ 可选 用于存储仓库附件、LFS大文件;没有时使用本地磁盘
Redis ➖ 可选 用作缓存、Session、队列后台,提升性能

Gitea支持SQLite、MySQL 8及PostgreSQL 12。由于SQLite仅支持单进程/线程写入,性能受限,通常不推荐用于生产环境。

我们最熟悉且常用的是MySQL,因此选择预先安装MySQL 8。安装完成后,请在数据库中创建一个名为gitea的空数据库(此时库中没有任何表)。

图片

Docker安装Gitea

接下来,通过运行以下Docker命令来安装Gitea:

docker run -d --name gitea \
  -p 3000:3000 -p 222:22 \
  -v /Users/zhangyong/docker/gitea/data:/data \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  -e USER_UID=1000 \
  -e USER_GID=1000 \
  --restart always \
  gitea/gitea:latest

安装完成后,首次访问 http://localhost:3000 将进入初始化配置页面。

图片

如图所示,我们需要配置数据库连接信息(选择MySQL,填写前面创建好的gitea数据库连接参数),然后点击“立即安装”。

所有配置选项将被写入容器内的 /data/gitea/conf/app.ini 文件。

安装成功后,界面如下:

图片

注册完初始的root管理员账号后,即可登录进入Gitea主页。

图片

新建仓库

图片

创建仓库的界面与GitHub风格相似,输入仓库名称及相关信息,即可成功创建。

图片

当我们需要克隆仓库或向仓库推送代码时,通常需要创建一个用户的个人访问令牌(Personal Access Token,简称PAT)。

图片

令牌创建成功后,请务必妥善保存。

此令牌将在使用Git命令行克隆或推送代码时,作为密码使用。

调用API

访问 http://localhost:3000/api/swagger#/repository,可以查看Gitea提供的所有可操作的REST API接口文档。

图片

如图所示,我们可以根据业务需求,将这些API封装成内部服务。例如,可以封装一个统一的Java服务,来管理仓库的创建、删除、用户权限等操作。

图片

总结

图片

上图对比了Gitea与GitLab在资源消耗和特性上的主要差异。对于中小型团队或需要将Git服务深度集成到自有平台中的场景,Gitea凭借其极低的资源占用和完整的API支持,无疑是一个高效、灵活的“轻量级神器”,能够很好地适配公司特定的业务需求。




上一篇:贪心算法实战:GESP C++五级练习题洛谷P2242公路维修问题解析
下一篇:UNet图像分割网络详解:从基础架构到PyTorch实战与医学影像应用
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 14:40 , Processed in 0.103705 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表