# Docker 国内源构建指南 ## 📋 概述 `Dockerfile国内源版` 是专为中国大陆用户优化的Docker构建文件,所有依赖都从国内镜像源下载,大幅提升构建速度。 ## 🚀 快速构建 ```bash # Windows PowerShell docker build -f "Dockerfile国内源版" -t agentsstock1:latest . # Linux/macOS docker build -f Dockerfile国内源版 -t agentsstock1:latest . ``` ## 🌐 国内镜像源配置 ### 1. 基础镜像 - **源**: 华为云Docker镜像仓库 - **地址**: `swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.12-slim` - **优势**: 华为云CDN加速,下载速度快 ### 2. Debian系统包 - **源**: 阿里云Debian镜像 - **地址**: `mirrors.aliyun.com/debian/` - **包含**: - `bookworm main` - 主仓库 - `bookworm-updates` - 更新仓库 - `bookworm-security` - 安全更新 - **优势**: 国内访问速度快,稳定可靠 ### 3. Node.js - **源**: 淘宝npm镜像(二进制包) - **地址**: `registry.npmmirror.com/-/binary/node/` - **版本**: Node.js 18.20.4 LTS(长期支持版) - **安装方式**: 直接下载预编译二进制包 - **优势**: - 淘宝CDN加速,速度极快 - 无需配置apt源,更稳定可靠 - 支持多架构(x64/arm64) - 固定版本,可预测性强 ### 4. npm包管理器 - **源**: 淘宝npm镜像(npmmirror) - **地址**: `registry.npmmirror.com` - **优势**: - 同步频率高(10分钟) - CDN加速 - 完整同步官方npm仓库 ### 5. Python pip包 - **源**: 清华大学PyPI镜像 - **地址**: `pypi.tuna.tsinghua.edu.cn/simple/` - **优势**: - 教育网镜像,速度快 - 每5分钟同步一次官方PyPI - 稳定可靠 ## ⚡ 性能对比 | 项目 | 官方源 | 国内源 | 提升 | |------|--------|--------|------| | 基础镜像下载 | ~5-10分钟 | ~30-60秒 | **10倍** | | Debian包安装 | ~3-5分钟 | ~30-60秒 | **5倍** | | Node.js安装 | ~2-5分钟 | ~30秒 | **6倍** | | Python依赖 | ~10-15分钟 | ~2-3分钟 | **5倍** | | **总构建时间** | **20-35分钟** | **4-6分钟** | **🚀 6倍+** | ## 🔧 技术细节 ### Node.js安装流程 采用**二进制包直接安装**方案,避免apt源配置问题: ```dockerfile # 1. 设置版本和检测系统架构 NODE_VERSION=18.20.4 ARCH=$(dpkg --print-architecture) if [ "$ARCH" = "amd64" ]; then NODE_ARCH="x64"; elif [ "$ARCH" = "arm64" ]; then NODE_ARCH="arm64"; fi # 2. 从淘宝npm镜像下载Node.js二进制包(速度快) curl -fsSL https://registry.npmmirror.com/-/binary/node/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.gz \ -o /tmp/node.tar.gz # 3. 解压到系统目录 tar -xzf /tmp/node.tar.gz -C /usr/local --strip-components=1 # 4. 清理临时文件 rm /tmp/node.tar.gz # 5. 创建软链接(兼容性) ln -s /usr/local/bin/node /usr/local/bin/nodejs ``` **优势说明**: - ✅ 无需配置apt源,避免GPG密钥和源地址变更问题 - ✅ 直接从淘宝CDN下载,速度快且稳定 - ✅ 支持x64和arm64架构 - ✅ 版本固定(18.20.4 LTS),确保构建可重现 ### 为什么选择这些镜像源? 1. **华为云Docker镜像**: - 国内最大的云服务商之一 - 全国多地CDN节点 - 企业级稳定性 2. **阿里云Debian源**: - 阿里巴巴维护,可靠性高 - 同步频率高 - 访问速度快 3. **清华大学镜像站**: - 教育网核心节点 - 同步及时(5-10分钟) - 学术机构,长期稳定 4. **淘宝npm镜像**: - 阿里巴巴开源团队维护 - npm官方推荐的中国镜像 - 同步最快(10分钟) ## 🐛 常见问题 ### 1. GPG密钥下载失败 ``` curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/nodesource/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg ``` **解决**: 检查网络连接,或暂时关闭防火墙/代理 ### 2. pip安装超时 ```dockerfile RUN pip install --no-cache-dir --default-timeout=1000 -r requirements.txt ``` **说明**: 已设置超时时间为1000秒,应该足够 ### 3. Node.js版本问题 当前配置安装Node.js 18.20.4 LTS,如需其他版本: ```dockerfile # 修改 NODE_VERSION 变量 NODE_VERSION=20.11.1 # 改为20.x LTS NODE_VERSION=16.20.2 # 改为16.x LTS # 可用版本查询:https://registry.npmmirror.com/-/binary/node/ ``` ### 4. 构建缓存问题 如需强制重新构建(不使用缓存): ```bash docker build --no-cache -f "Dockerfile国内源版" -t agentsstock1:latest . ``` ## 📊 构建日志示例 ``` [ 1/10] FROM swr.cn-north-4.myhuaweicloud.com/... ✅ 1.2s [ 2/10] RUN echo "deb https://mirrors.aliyun.com... ✅ 0.3s [ 3/10] WORKDIR /app ✅ 0.0s [ 4/10] RUN apt-get update && apt-get install... ✅ 45.2s [ 5/10] RUN mkdir -p /etc/apt/keyrings &&... ✅ 28.5s [ 6/10] RUN node --version && npm --version ✅ 0.4s [ 7/10] RUN npm config set registry... ✅ 0.2s [ 8/10] COPY requirements.txt . ✅ 0.1s [ 9/10] RUN pip config set && pip install... ✅ 156.3s [10/10] COPY . . ✅ 2.1s ✅ 总计: 约 4-5 分钟 ``` ## 🔄 更新镜像源 如果某个镜像源不可用,可以切换备选源: ### Debian源备选 ```dockerfile # 清华源 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main # 中科大源 deb https://mirrors.ustc.edu.cn/debian/ bookworm main # 华为源 deb https://repo.huaweicloud.com/debian/ bookworm main ``` ### npm源备选 ```dockerfile # 淘宝(推荐) npm config set registry https://registry.npmmirror.com/ # 腾讯云 npm config set registry https://mirrors.cloud.tencent.com/npm/ # 华为云 npm config set registry https://mirrors.huaweicloud.com/repository/npm/ ``` ### pip源备选 ```dockerfile # 清华(推荐) https://pypi.tuna.tsinghua.edu.cn/simple/ # 阿里云 https://mirrors.aliyun.com/pypi/simple/ # 中科大 https://pypi.mirrors.ustc.edu.cn/simple/ # 豆瓣 https://pypi.douban.com/simple/ ``` ## 📝 完整构建流程 ```bash # 1. 确保在项目根目录 cd /path/to/agentsstock1 # 2. 创建 .env 文件 cp .env.example .env # 编辑 .env,填入 DEEPSEEK_API_KEY # 3. 构建镜像(国内源版) docker build -f "Dockerfile国内源版" -t agentsstock1:latest . # 4. 运行容器 docker run -d -p 8503:8501 -v $(pwd)/.env:/app/.env --name agentsstock1 agentsstock1:latest # 5. 查看日志 docker logs -f agentsstock1 # 6. 访问应用 # 打开浏览器: http://localhost:8503 ``` ## 🎯 推荐配置 ### 开发环境 ```bash docker build -f "Dockerfile国内源版" -t agentsstock1:dev . docker run -d -p 8503:8501 \ -v $(pwd)/.env:/app/.env \ -v $(pwd):/app \ --name agentsstock1-dev \ agentsstock1:dev ``` ### 生产环境 ```bash docker build -f "Dockerfile国内源版" -t agentsstock1:prod . docker run -d -p 8503:8501 \ -v $(pwd)/.env:/app/.env \ -v $(pwd)/data:/app/data \ --restart unless-stopped \ --name agentsstock1-prod \ agentsstock1:prod ``` ## ✅ 验证构建结果 ```bash # 检查Node.js版本 docker run --rm agentsstock1:latest node --version # 预期输出: v18.20.x # 检查npm版本 docker run --rm agentsstock1:latest npm --version # 预期输出: 10.x.x # 检查Python版本 docker run --rm agentsstock1:latest python --version # 预期输出: Python 3.12.x # 检查已安装的Python包 docker run --rm agentsstock1:latest pip list ``` ## 📚 参考资源 - [清华大学开源软件镜像站](https://mirrors.tuna.tsinghua.edu.cn/) - [阿里巴巴开源镜像站](https://developer.aliyun.com/mirror/) - [淘宝npm镜像](https://npmmirror.com/) - [华为云镜像站](https://mirrors.huaweicloud.com/) --- **享受高速Docker构建体验!** 🚀