2.3 KiB
2.3 KiB
问题原因
- 国内访问官方
pypi.org、Docker Hub 和部分 CDN 较慢,导致镜像构建阶段的依赖下载成为瓶颈。
加速策略
1) Python 依赖镜像
- 在镜像内配置
pip国内源:腾讯云镜像或清华/阿里云镜像。 - 建议:
PIP_INDEX_URL=https://mirrors.cloud.tencent.com/pypi/simple,并写入/etc/pip.conf,保证所有pip install都走国内源。
2) Docker 镜像拉取加速
- 在服务器上配置 Docker daemon 的国内加速镜像:
daemon.json增加:"registry-mirrors": ["https://mirror.ccs.tencentyun.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],重启 Docker。
3) 预构建并推送镜像
- 在本地/构建机上构建好镜像并推送到腾讯云 TCR(容器镜像服务),服务器仅需拉取镜像,跳过远端构建阶段的依赖下载。
4) 构建层缓存优化
- 保持
COPY requirements.txt在前,先pip install,再COPY app static,避免代码改动频繁导致依赖层重建。 - 新增
.dockerignore(忽略data/、临时文件、.git等)以减少上下文,提高构建速度。
5) (可选)APT 源加速
- 如后续需要安装系统依赖(目前没有),切换为腾讯云/清华 APT 源:
mirrors.cloud.tencent.com或mirrors.tuna.tsinghua.edu.cn。
拟改动内容
- 更新
Dockerfile:- 写入
/etc/pip.conf(index-url指向腾讯云或清华镜像) - 设置
ENV PIP_INDEX_URL与PIP_DEFAULT_TIMEOUT - 保持依赖安装层的顺序与缓存稳定
- 写入
- 新增
.dockerignore:忽略不必要文件,缩短构建时间 - 更新《部署文档.md》:
- 添加 Docker daemon 镜像加速配置步骤(腾讯云镜像)
- 添加 TCR 推送/拉取流程示例
- 标注国内 pip 源配置与回退方案(多镜像选择)
- 更新 README:补充“国内部署加速”小节
交付后效果
- 服务器端
docker compose up --build明显提速; - 或直接
docker compose up -d拉取预构建镜像,部署用时较短; - 构建层缓存更稳定,代码改动不触发依赖重装。
后续可选
- 若你使用企业私有网络(VPC)限制外网,建议固定用 TCR 方案。
- 如需离线部署,提供
pip wheel预下载与本地源(后续扩展)。