43 lines
2.3 KiB
Markdown
43 lines
2.3 KiB
Markdown
## 问题原因
|
||
- 国内访问官方 `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`。
|
||
|
||
## 拟改动内容
|
||
1. 更新 `Dockerfile`:
|
||
- 写入 `/etc/pip.conf`(`index-url` 指向腾讯云或清华镜像)
|
||
- 设置 `ENV PIP_INDEX_URL` 与 `PIP_DEFAULT_TIMEOUT`
|
||
- 保持依赖安装层的顺序与缓存稳定
|
||
2. 新增 `.dockerignore`:忽略不必要文件,缩短构建时间
|
||
3. 更新《部署文档.md》:
|
||
- 添加 Docker daemon 镜像加速配置步骤(腾讯云镜像)
|
||
- 添加 TCR 推送/拉取流程示例
|
||
- 标注国内 pip 源配置与回退方案(多镜像选择)
|
||
4. 更新 README:补充“国内部署加速”小节
|
||
|
||
## 交付后效果
|
||
- 服务器端 `docker compose up --build` 明显提速;
|
||
- 或直接 `docker compose up -d` 拉取预构建镜像,部署用时较短;
|
||
- 构建层缓存更稳定,代码改动不触发依赖重装。
|
||
|
||
## 后续可选
|
||
- 若你使用企业私有网络(VPC)限制外网,建议固定用 TCR 方案。
|
||
- 如需离线部署,提供 `pip wheel` 预下载与本地源(后续扩展)。
|