7.6 KiB
7.6 KiB
Docker 国内源构建指南
📋 概述
Dockerfile国内源版 是专为中国大陆用户优化的Docker构建文件,所有依赖都从国内镜像源下载,大幅提升构建速度。
🚀 快速构建
# 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源配置问题:
# 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),确保构建可重现
为什么选择这些镜像源?
-
华为云Docker镜像:
- 国内最大的云服务商之一
- 全国多地CDN节点
- 企业级稳定性
-
阿里云Debian源:
- 阿里巴巴维护,可靠性高
- 同步频率高
- 访问速度快
-
清华大学镜像站:
- 教育网核心节点
- 同步及时(5-10分钟)
- 学术机构,长期稳定
-
淘宝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安装超时
RUN pip install --no-cache-dir --default-timeout=1000 -r requirements.txt
说明: 已设置超时时间为1000秒,应该足够
3. Node.js版本问题
当前配置安装Node.js 18.20.4 LTS,如需其他版本:
# 修改 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. 构建缓存问题
如需强制重新构建(不使用缓存):
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源备选
# 清华源
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源备选
# 淘宝(推荐)
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源备选
# 清华(推荐)
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/
📝 完整构建流程
# 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
🎯 推荐配置
开发环境
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
生产环境
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
✅ 验证构建结果
# 检查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
📚 参考资源
享受高速Docker构建体验! 🚀