
dyrnq/git-syncgit-sync 是一个轻量级工具,用于将Git仓库同步到容器文件系统中。它能够定期从指定的Git仓库拉取最新代码,并保持本地文件与远程仓库同步。该工具特别适用于Kubernetes环境,可用于配置文件管理、静态资源部署或作为持续集成/持续部署流程的一部分。
bashdocker run -d k8s.gcr.io/git-sync \ --repo=[***] \ --branch=main \ --period=30 \ --root=/git
yamlversion: '3' services: git-sync: image: k8s.gcr.io/git-sync command: - --repo=[***] - --branch=main - --period=60 - --root=/git/data volumes: - ./data:/git/data
yamlapiVersion: v1 kind: Pod metadata: name: git-sync-example spec: containers: - name: git-sync image: k8s.gcr.io/git-sync args: - --repo=[***] - --branch=main - --period=30 - --root=/git volumeMounts: - name: git-volume mountPath: /git volumes: - name: git-volume emptyDir: {}
| 参数 | 描述 | 默认值 |
|---|---|---|
--repo | Git仓库URL (HTTP/HTTPS或SSH) | 无 |
--branch | 要同步的分支名称 | master |
--tag | 要同步的标签 | 无 |
--rev | 要同步的提交哈希 | 无 |
--root | 本地同步目录 | /git |
--period | 同步间隔(秒) | 60 |
--depth | 克隆深度,0表示完整克隆 | 0 |
--wait | 初始同步等待时间(秒) | 0 |
--max-sync-failures | 最大同步失败次数,超过则退出 | 0 (无限制) |
| 参数 | 描述 |
|---|---|
--username | Git仓库用户名 |
--password | Git仓库密码 |
--ssh | 使用SSH协议进行认证 |
--ssh-key-file | SSH密钥文件路径 |
--ssh-known-hosts | 已知主机文件路径 |
| 参数 | 描述 | 默认值 |
|---|---|---|
--log-level | 日志级别 (debug, info, warn, error, fatal) | info |
--link | 创建指向最新提交的符号链接 | false |
--manifests | 同步Kubernetes manifests | false |
--add-user | 添加git用户到/etc/passwd | false |
除了命令行参数外,git-sync还支持通过环境变量进行配置:
GIT_SYNC_REPO: Git仓库URLGIT_SYNC_BRANCH: 分支名称GIT_SYNC_TAG: 标签GIT_SYNC_REV: 提交哈希GIT_SYNC_ROOT: 同步目录GIT_SYNC_PERIOD: 同步间隔(秒)GIT_SYNC_USERNAME: 用户名GIT_SYNC_PASSWORD: 密码GIT_SYNC_SSH: 是否使用SSH (true/false)--depth参数限制克隆深度--max-sync-failures值以处理持续失败情况--period参数以减少同步频率,减轻仓库负担




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务