#!/bin/bash set -e echo "================================" echo "小红书数据采集器启动脚本" echo "================================" # Git 自动更新功能 if [ "$ENABLE_GIT_PULL" = "true" ]; then echo "Git 自动更新已启用" # 如果是首次运行且配置了仓库地址,则克隆仓库 if [ ! -d "/app/.git" ] && [ -n "$GIT_REPO_URL" ]; then echo "克隆仓库: $GIT_REPO_URL" cd /tmp git clone "$GIT_REPO_URL" repo cd repo git checkout "${GIT_BRANCH:-main}" cp -r . /app/ cd /app rm -rf /tmp/repo echo "仓库克隆完成" fi # 启动 Git 自动拉取后台任务 if [ -d "/app/.git" ]; then echo "启动 Git 自动拉取服务(间隔: ${AUTO_PULL_INTERVAL:-3600}秒)" ( while true; do sleep "${AUTO_PULL_INTERVAL:-3600}" echo "[Git Pull] 检查更新..." cd /app # 获取当前分支 CURRENT_BRANCH=$(git branch --show-current) # 拉取最新代码 if git fetch origin "${CURRENT_BRANCH}" && git reset --hard "origin/${CURRENT_BRANCH}"; then echo "[Git Pull] 代码已更新" # 检查是否有 Python 文件变化 if git diff --name-only HEAD@{1} HEAD | grep -q '\.py$'; then echo "[Git Pull] Python 代码有变化,需要重启容器" # 可以在这里发送重启信号 fi else echo "[Git Pull] 拉取失败" fi done ) & fi else echo "Git 自动更新未启用" fi echo "启动 Web 服务..." echo "端口: ${PORT:-18085}" echo "无头模式: ${HEADLESS:-false}" echo "================================" # 启动应用 exec python main.py