65 lines
1.9 KiB
Bash
65 lines
1.9 KiB
Bash
#!/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
|