Back to skills
extension
Category: Development & EngineeringNo API key required

mirror-optimizer

Use when the user explicitly requests to 'optimize image sources', 'configure domestic mirrors', 'accelerate deployment', 'switch image sources', or for projects involving Docker/Python/Node.js/Go/Java/Ruby/Rust, etc., which require package managers. Automatically detect the package manager used by the project, generate a compatible configuration for domestic mirror sources, ensuring rapid deployment under the domestic network environment. ⚠️ Not applicable: The user only wants to understand the concept of mirror sources (should be explained directly), the project has been deployed and does not need optimization (should inform that no action is needed), the user explicitly requests to use official sources (should respect the user's choice).

personAuthor: jakexiaohubgithub

Mirror Optimizer - 镜像源优化代理

铁律

NO DEPLOYMENT WITHOUT MIRROR CONFIGURATION FIRST

任何涉及依赖下载的部署任务,必须先确认并优化镜像源配置,否则在国内环境下部署将极慢或失败。

核心理念

智能适配,透明可逆。根据项目技术栈自动识别需要配置的镜像源类型,生成标准化的配置文件,同时保持官方源兼容性,支持一键切换。

何时使用

  • 项目包含 Dockerfiledocker-compose.yml.dockerignore
  • 项目包含 requirements.txtpyproject.tomlPipfilesetup.pysetup.cfgpoetry.lock
  • 项目包含 package.jsonyarn.lockpnpm-lock.yamlpackage-lock.json
  • 项目包含 go.modgo.sumGopkg.lockGopkg.toml
  • 项目包含 pom.xmlbuild.gradlebuild.gradle.ktssettings.gradle
  • 项目包含 Gemfilegems.rbCargo.toml
  • 用户明确要求"配置国内镜像"、"加速部署"、"切换镜像源"
  • 部署过程中出现依赖下载超时或失败

输入

  • 必需:项目根目录路径
  • 可选:目标部署区域(默认:中国大陆)

输出

  • 检测报告:识别出的包管理器类型和当前配置状态
  • 配置文件:为每个包管理器生成的镜像源配置
  • Dockerfile 优化建议(如适用)
  • 使用说明:如何应用配置和验证效果
  • 跳过清单:未生成的包管理器与原因(记录在报告中)

支持的镜像源类型

| 类型 | 检测文件 | 配置输出 | 国内镜像源 | |------|----------|----------|-----------| | Docker | Dockerfile, docker-compose.yml, .dockerignore | Dockerfile.mirror | 阿里云、腾讯云 | | Python/pip | requirements.txt, pyproject.toml | pip.conf | 清华、阿里云、中科大 | | Node.js/npm | package.json, package-lock.json | .npmrc | 淘宝、腾讯云 | | Node.js/yarn | yarn.lock | .yarnrc.yml | 淘宝、腾讯云 | | Go Modules | go.mod, go.sum | go.env | 阿里云、腾讯云 | | Java/Maven | pom.xml | settings.xml | 阿里云、腾讯云 | | Java/Gradle | build.gradle*, settings.gradle* | init.gradle | 阿里云、腾讯云 | | Ruby/Bundler | Gemfile, gems.rb | config | 淘宝、腾讯云 | | Rust/Cargo | Cargo.toml | config.toml | 清华、中科大 |

工作流

  1. 项目扫描

    • 使用硬编码脚本扫描项目根目录
    • 识别所有包管理器标记文件
    • 检查现有镜像源配置
  2. 智能分析

    • 根据检测文件确定需要配置的镜像源类型
    • 分析现有 Dockerfile 是否包含镜像源优化
    • 评估当前配置的潜在问题
  3. 配置生成

    • 为每个识别的包管理器生成标准化配置
    • 创建 Dockerfile.mirror 优化版本(如适用)
    • 生成 .mirror/ 目录存放所有配置文件
  4. 文档输出

    • 生成 MIRROR_OPTIMIZATION_REPORT.md 报告
    • 包含配置说明、使用方法、验证命令
    • 提供切换回官方源的指南
  5. 验证检查

    • 提供验证命令测试镜像源连通性
    • 确认配置文件格式正确
    • 建议测试下载速度

配置文件结构

输出目录以 config.yaml:mirror_optimization.output_dir 为准,以下以默认 .mirror/ 为例。

.mirror/
├── docker/
│   ├── Dockerfile.mirror        # 优化的 Dockerfile
├── python/
│   └── pip.conf                 # pip 配置
├── nodejs/
│   ├── .npmrc                   # npm 配置
│   └── .yarnrc.yml              # yarn 配置
├── golang/
│   └── go.env                   # Go Modules 配置
├── java/
│   ├── maven/
│   │   └── settings.xml          # Maven 配置
│   └── gradle/
│       └── init.gradle           # Gradle 配置
└── MIRROR_OPTIMIZATION_REPORT.md

质量门槛

  • [ ] 完整性:检测到所有相关包管理器
  • [ ] 正确性:生成的配置文件格式正确
  • [ ] 兼容性:配置与官方源兼容,可一键切换
  • [ ] 透明性:配置有清晰注释说明用途
  • [ ] 可验证性:提供验证命令测试效果

国内镜像源推荐

| 类型 | 推荐源 | URL | |------|--------|-----| | Docker | 阿里云 | https://registry.cn-hangzhou.aliyuncs.com | | Docker | 腾讯云 | https://mirror.ccs.tencentyun.com | | Python | 清华 | https://pypi.tuna.tsinghua.edu.cn/simple | | Python | 阿里云 | https://mirrors.aliyun.com/pypi/simple/ | | Node.js | 淘宝 | https://registry.npmmirror.com | | Go | 阿里云 | https://mirrors.aliyun.com/goproxy/ | | Go | 腾讯云 | https://mirrors.tencent.com/go/ | | Java/Maven | 阿里云 | https://maven.aliyun.com/repository/public | | Ruby | 淘宝 | https://gems.ruby-china.com | | Rust | 清华 | https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git |

安全注意事项

  • 只使用知名云服务商的镜像源
  • 验证镜像源的 HTTPS 证书
  • 定期检查镜像源可用性
  • 生产环境建议配置镜像源备份

相关参考