- 新增 .drone.yml 配置,实现基于 SSH 的自动构建和推送 Spider Base 镜像 - 检测 kami-spider-monorepo 目录代码变动,变动时触发基础镜像构建 - 基础镜像包含系统依赖、Python 环境、Playwright 及所有项目依赖 - 优化 Dockerfile,将应用镜像基于该预构建基础镜像构建,显著提升构建速度 - 新增 Makefile,标准化基础镜像和应用镜像的构建、测试、推送及清理流程 - 增加详细的 README,指导开发者快速上手构建和使用基础镜像 - 添加构建脚本 build-base-image.sh,实现基础镜像的统一构建及推送 - 引入生产环境入口脚本 docker-entrypoint.sh,优化启动流程和信号处理 - 统一依赖管理(pyproject.toml、uv.lock),确保基础镜像依赖完整一致 - 设定健康检查,提升容器运行稳定性和可监控性
2.8 KiB
2.8 KiB
kami-spider 基础镜像
提供预构建的 Docker 基础镜像,加速 kami-spider 应用的构建和部署。
架构概览
基础镜像 (kami-spider-base)
- 基础:
python:3.13-slim - 包含:
- Python 3.13 运行时环境
- 系统依赖 (gcc, g++, curl 等)
- Playwright 运行时依赖
- UV 包管理器
- 非 root 用户配置
- 所有项目 Python 依赖包
- Playwright 浏览器 (Chromium)
- 预配置的虚拟环境
应用镜像 (kami-spider)
- 基于预构建的基础镜像
- 仅包含应用代码
- 极快的构建速度
快速开始
1. 构建基础镜像
# 构建完整基础镜像
./build-base-image.sh
# 或使用 Make
make build-base
# 使用代理构建
USE_PROXY=1 ./build-base-image.sh
# 或
make build-base-with-proxy
2. 构建应用镜像
# 构建应用镜像
make build
# 快速启动
make quick-start
3. 访问应用
应用启动后可通过 http://localhost:8000 访问
性能优势
- 构建时间: 从 5-8 分钟减少到 15-30 秒
- 缓存效果: 依赖只需安装一次
- 镜像大小: ~850MB (包含所有依赖)
详细命令
构建命令
# 构建所有镜像
make build-all
# 开发环境构建
make dev
# 生产环境构建 (带时间戳)
make prod
测试命令
# 测试基础镜像
make test-base
# 测试应用镜像
make test
# 运行所有测试
make test-all
推送命令
# 推送基础镜像
make push-base
# 推送应用镜像
make push-app
# 推送所有镜像
make push-all
管理命令
# 清理镜像
make clean
# 停止应用
make stop
# 查看应用日志
make logs
# 查看所有可用命令
make help
环境变量
| 变量名 | 默认值 | 说明 |
|---|---|---|
USE_PROXY |
0 |
是否使用清华源代理 |
DOCKER_REGISTRY |
localhost:5000 |
Docker 镜像仓库地址 |
VERSION |
latest |
镜像版本标签 |
文件说明
Dockerfile.base- 基础镜像定义Dockerfile- 应用镜像定义build-base-image.sh- 基础镜像构建脚本Makefile- 构建管理命令
CI/CD 集成
在 CI/CD 流水线中的推荐流程:
- 检查基础镜像是否存在
- 如果不存在,先构建基础镜像:
./build-base-image.sh - 构建应用镜像:
make build - 推送到镜像仓库:
make push-all
故障排除
基础镜像拉取失败
# 检查镜像仓库配置
echo $DOCKER_REGISTRY
# 手动拉取测试
docker pull kami-spider-base:latest
依赖安装失败
# 重建基础镜像
docker build --no-cache -f Dockerfile.base -t kami-spider-base:latest .
权限问题
确保构建脚本有执行权限:
chmod +x build-base-image.sh