Files
docker-registry/.drone.yml
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

97 lines
2.7 KiB
YAML

---
kind: pipeline
type: ssh
name: spider-base-image-builder
server:
host: 38.38.251.113:34156
user: root
password:
from_secret: www_password
clone:
depth: 50
steps:
- name: check-spider-changes
commands:
- echo "🔍 Checking for changes in kami-spider-monorepo directory..."
- |
BUILD_REQUIRED=false
SPIDER_DIR="kami-spider-monorepo"
echo "Build event: $DRONE_BUILD_EVENT"
echo "Branch: $DRONE_COMMIT_BRANCH"
if [ "$DRONE_BUILD_EVENT" = "push" ]; then
if git rev-parse --verify HEAD~1 >/dev/null 2>&1; then
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)
echo "Changed files:"
echo "$CHANGED_FILES"
SPIDER_CHANGED=$(echo "$CHANGED_FILES" | grep -E "^${SPIDER_DIR}/" || true)
if [ -n "$SPIDER_CHANGED" ]; then
echo "✅ Changes detected in ${SPIDER_DIR}:"
echo "$SPIDER_CHANGED"
BUILD_REQUIRED=true
else
echo "❌ No changes in ${SPIDER_DIR}"
fi
else
echo "First commit detected, building..."
BUILD_REQUIRED=true
fi
else
echo "Non-push event, building..."
BUILD_REQUIRED=true
fi
echo "$BUILD_REQUIRED" > /tmp/build_status
echo "Build required: $BUILD_REQUIRED"
- name: build-spider-base-image
commands:
- |
if [ -f /tmp/build_status ] && [ "$(cat /tmp/build_status)" = "true" ]; then
echo "🏗️ Building spider base image..."
if [ -d "kami-spider-monorepo" ]; then
cd kami-spider-monorepo
echo "Changed to: $(pwd)"
ls -la
if [ -f "build-base-image.sh" ] && [ -f "Dockerfile.base" ]; then
chmod +x build-base-image.sh
docker login git.oceanpay.cc -u $DOCKER_LOGIN -p $DOCKER_TOKEN
./build-base-image.sh
docker tag kami-spider-base:latest git.oceanpay.cc/danial/kami-spider-base:latest
docker push git.oceanpay.cc/danial/kami-spider-base:latest
docker logout git.oceanpay.cc
echo "✅ Spider base image built successfully"
else
echo "❌ Required build files not found!"
ls -la
fi
else
echo "❌ kami-spider-monorepo directory not found!"
fi
else
echo "⏭️ Skipping build - no spider changes"
fi
environment:
DOCKER_LOGIN:
from_secret: docker_login
DOCKER_TOKEN:
from_secret: docker_token
trigger:
branch:
- main
- master
- develop
- production
when:
event:
- push