
k8sgerrit/git-gcGit GC容器镜像是一个专门用于执行Git垃圾回收(git gc)操作的容器化解决方案。该镜像通过自动化清理Git仓库中的冗余数据、优化存储结构,提升仓库性能并减少存储空间占用。主要设计用于Kubernetes环境,可作为CronJob实现定时自动回收,或作为Job按需手动触发。
gc-all.sh脚本,封装git gc命令,支持批量或单仓库回收操作.git子目录)准备Git仓库
将需要维护的Git仓库通过持久化存储(如Kubernetes PV/PVC、本地目录)挂载至容器,确保容器内路径可访问(建议挂载路径:/git-repo)
权限配置
根据实际环境设置容器运行用户ID(UID),确保与仓库目录权限匹配:
--user参数指定用户ID(如--user 1000:1000)securityContext配置runAsUser和fsGroup脚本参数自定义
如需调整垃圾回收行为(如启用激进清理、设置压缩深度等),可修改gc-all.sh脚本或通过环境变量传递参数(具体参数参考Git官方文档)
bashdocker run --rm \ -v /path/to/local/git/repo:/git-repo \ # 挂载本地Git仓库目录 --user $(id -u):$(id -g) \ # 使用当前用户权限避免权限问题 git-gc-image \ # 替换为实际镜像名称 /gc-all.sh /git-repo # 执行脚本并指定仓库路径
yamlapiVersion: batch/v1 kind: CronJob metadata: name: git-gc-cronjob spec: schedule: "0 3 * * *" # 每日凌晨3点执行(Cron表达式) jobTemplate: spec: template: spec: securityContext: runAsUser: 1000 fsGroup: 1000 containers: - name: git-gc image: git-gc-image # 替换为实际镜像地址 volumeMounts: - name: repo-volume mountPath: /git-repo # 容器内仓库挂载路径 command: ["/gc-all.sh", "/git-repo"] # 执行垃圾回收脚本 volumes: - name: repo-volume persistentVolumeClaim: claimName: git-repo-pvc # 指向包含Git仓库的PVC restartPolicy: OnFailure # 失败时重启容器
.git子目录)resources.limits.cpu=1、resources.limits.memory=1Gi),避免执行超时manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务