Files
docker-registry/kami-spider-monorepo/docker-entrypoint.sh
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

55 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Docker production entrypoint script
# Optimized for production deployment
set -e
# Disable all debuggers and development tools
export PYDEVD_DISABLE=1
export PYDEVD_DISABLE_FILE_VALIDATION=1
export PYCHARM_DEBUG="false"
export PYTEST_CURRENT_TEST="false"
export PYTHONOPTIMIZE=2
# Ensure proper signal handling
cleanup() {
echo "Received termination signal, shutting down gracefully..."
if [ -n "$MAIN_PID" ]; then
kill -TERM "$MAIN_PID"
wait "$MAIN_PID"
fi
exit 0
}
# Set up signal handlers
trap cleanup SIGTERM SIGINT
echo "Starting kami_spider application..."
echo "Environment: ${ENVIRONMENT:-production}"
echo "Database URL: ${DATABASE_URL}"
# Run database migrations first
echo "Running database migrations..."
if python scripts/db_manager.py up; then
echo "Database migrations completed successfully"
else
echo "Database migrations failed!"
exit 1
fi
# Check database connection
echo "Checking database connection..."
if python scripts/db_manager.py check; then
echo "Database connection verified"
else
echo "Database connection failed!"
exit 1
fi
# Run the main application
echo "Starting main application..."
exec "$@" &
MAIN_PID=$!
echo "Application started with PID: $MAIN_PID"
# Wait for the main process
wait "$MAIN_PID"