TrendRadar/docker/entrypoint.sh
sansan a95d21b850 fix: 修复Docker多架构兼容性并更新部署文档
- 修复entrypoint.sh中硬编码supercronic-linux-amd64导致arm64/arm架构无法运行的问题
- 正式发布官方 Docker 镜像 wantcat/trendradar,支持多架构
- 优化 Docker 部署流程,无需本地构建即可快速使用
2025-09-04 20:45:13 +08:00

44 lines
1.0 KiB
Bash

#!/bin/bash
set -e
# 检查配置文件
if [ ! -f "/app/config/config.yaml" ] || [ ! -f "/app/config/frequency_words.txt" ]; then
echo "❌ 配置文件缺失"
exit 1
fi
# 保存环境变量
env >> /etc/environment
case "${RUN_MODE:-cron}" in
"once")
echo "🔄 单次执行"
exec /usr/local/bin/python main.py
;;
"cron")
# 生成 crontab
echo "${CRON_SCHEDULE:-*/30 * * * *} cd /app && /usr/local/bin/python main.py" > /tmp/crontab
echo "📅 生成的crontab内容:"
cat /tmp/crontab
if ! /usr/local/bin/supercronic -test /tmp/crontab; then
echo "❌ crontab格式验证失败"
exit 1
fi
# 立即执行一次(如果配置了)
if [ "${IMMEDIATE_RUN:-false}" = "true" ]; then
echo "▶️ 立即执行一次"
/usr/local/bin/python main.py
fi
echo "⏰ 启动supercronic: ${CRON_SCHEDULE:-*/30 * * * *}"
echo "🎯 supercronic 将作为 PID 1 运行"
exec /usr/local/bin/supercronic -passthrough-logs /tmp/crontab
;;
*)
exec "$@"
;;
esac