Sign inSign up

googlelab/docker-github-mirror-web

By googlelab

•Updated 10 months ago

Image
0

383

googlelab/docker-github-mirror-web repository overview

⁠Universal Mirror Agent

⁠✨ 功能

  1. DockerHub镜像同步工具,支持将 Docker Hub 上的镜像(包含所有 Tags)完整同步到你的个人账户。
  2. 将GITHUB备份到GitLab,支持将代码和Releases 文件完整克隆备份到GitLab;
  3. 提供 Web 界面操作;

⁠✨ 特点

  • 可视化界面:Web 浏览器操作,直观便捷。
  • 安全认证:
    • 管理员密码保护。
    • 防暴力破解:连续 5 次错误锁定 1 小时。
  • 智能同步:
    • 全量/指定模式:支持全量 Tag 同步或指定单个 Tag。
    • 存在性检查:自动检查目标仓库是否存在对应 Tag,避免重复同步和错误。
    • 实时日志:网页实时展示同步详细日志流 (SSE)。
  • 高效内核:基于 Skopeo,无需本地 Pull,直接 Registry 对拷。

⁠🚀 部署指南

⁠直接启动服务 (Docker CLI)
docker run -d \
  --name mirror-agent \
  -p 5500:5500 \
  -e ADMIN_PASSWORD="yourpassword" \
  -e TARGET_USER="dockerUser" \
  -e TARGET_PASSWORD="dockerToken" \
  -e GITLAB_URL="https://gitlab.example.com" \
  -e GITLAB_TOKEN="glpat-xxxxxxxxxx" \
  googlelab/docker-github-mirror-web
  • 访问地址: http://localhost:5500
  • 登录密码: yourpassword
⁠使用Docker Compose (推荐)

创建 docker-compose.yml 文件内容如下:

version: '3.8'
services:
  mirror-agent:
    image: googlelab/docker-github-mirror-web
    build: .
    ports:
      - "5500:5500"
    environment:
      - ADMIN_PASSWORD=admin123
      - TARGET_USER=myuser               # Docker Hub 用户名
      - TARGET_PASSWORD=mypattoken       # Docker Hub Token
      - GITLAB_URL=https://gitlab.com    # (选填) GitLab 地址
      - GITLAB_TOKEN=glpat-xxxxxx        # (GitHub Fork 必填) GitLab Token
      - GITLAB_USER=oauth2               # (选填) GitLab 用户名,默认 oauth2

运行:

docker compose up -d

⁠🖥️ 使用说明

⁠Docker Image Fork
  1. Source: 输入 nginx/nginx-ingress。
  2. Tag: 输入 1.2.3 或勾选 Sync All。
⁠GitHub To GitLab Repo Fork
  1. 切换到 GitHub To GitLab Repo Fork 标签页。
  2. Source Repo: 输入 owner/repo (如 ant-design/ant-design)。
  3. Target Project: 输入 GitLab 的 group/project (如 my-mirror/ant-design)。
    • 注意:建议先在 GitLab 创建对应的空项目,或者确保 Token 有权限创建。
  4. Release Tag: (可选) 输入 v5.12.0。如果填写,工具会去 GitHub 下载该 Release 的所有附件,上传到 GitLab 的 Package Registry,并创建一个同名的 GitLab Release。

⁠⚙️ 环境变量表

变量名说明默认值
ADMIN_PASSWORDWeb 管理员登录密码admin123
TARGET_USER目标 Docker Hub 用户名-
TARGET_PASSWORD目标 Docker Hub Token-
GITLAB_URLGitLab 实例地址https://gitlab.com (如果是自建 GitLab,请填您的服务器地址,如 http://192.168.1.100)
GITLAB_TOKENGitLab Access Token必选权限: api, write_repository
GITLAB_USERGitLab 用户名 (用于 HTTP Git Push)oauth2[可选配置]
GITHUB_TOKENGitHub Token (用于 API 限流或私有库)-[可选配置]

⁠🔑 如何获取 Docker Hub Token?

虽然可以直接使用登录密码,但为了安全起见,强烈建议使用 Personal Access Token (PAT)。

  1. 登录 Docker Hub⁠。
  2. 点击右上角头像 -> Account Settings。
  3. 选择左侧菜单 Security。
  4. 点击 New Access Token 按钮。
  5. 填写描述 (如 Docker Mirror),权限选择 Read, Write, Delete。
  6. 点击 Generate,复制生成的字符串。这就是您的 TARGET_PASSWORD。

Tag summary

Content type

Image

Digest

sha256:b42848c4b…

Size

119.7 MB

Last updated

10 months ago

docker pull googlelab/docker-github-mirror-web