Files
docker-registry/kami-spider-monorepo/README.md
danial 716a72b8ab feat(ci): 添加 Spider Base 镜像构建和部署流水线
- 新增 .drone.yml 配置,实现基于 SSH 的自动构建和推送 Spider Base 镜像
- 检测 kami-spider-monorepo 目录代码变动,变动时触发基础镜像构建
- 基础镜像包含系统依赖、Python 环境、Playwright 及所有项目依赖
- 优化 Dockerfile,将应用镜像基于该预构建基础镜像构建,显著提升构建速度
- 新增 Makefile,标准化基础镜像和应用镜像的构建、测试、推送及清理流程
- 增加详细的 README,指导开发者快速上手构建和使用基础镜像
- 添加构建脚本 build-base-image.sh,实现基础镜像的统一构建及推送
- 引入生产环境入口脚本 docker-entrypoint.sh,优化启动流程和信号处理
- 统一依赖管理(pyproject.toml、uv.lock),确保基础镜像依赖完整一致
- 设定健康检查,提升容器运行稳定性和可监控性
2025-11-09 15:08:38 +08:00

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 流水线中的推荐流程:

  1. 检查基础镜像是否存在
  2. 如果不存在,先构建基础镜像:
    ./build-base-image.sh
    
  3. 构建应用镜像:
    make build
    
  4. 推送到镜像仓库:
    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