#!/usr/bin/env bash set -euo pipefail export TZ="${TZ:-Asia/Shanghai}" TASKS_FILE="${DQD_TASKS_FILE:-/app/config/crawler_tasks.yaml}" PYTHON_BIN="${PYTHON_BIN:-/usr/local/bin/python}" mkdir -p /app/logs /app/data/locks /etc/sport-era-crawler if [ "$#" -gt 0 ]; then exec "$@" fi python - <<'PY' import os import shlex from pathlib import Path env_file = Path("/etc/sport-era-crawler/env.sh") with env_file.open("w", encoding="utf-8") as fp: for key, value in sorted(os.environ.items()): if key.startswith("DQD_") or key in {"TZ", "PYTHONPATH", "PYTHONUNBUFFERED"}: fp.write(f"export {key}={shlex.quote(value)}\n") env_file.chmod(0o600) PY cd /app "${PYTHON_BIN}" scripts/docker_task_runner.py render-cron \ --tasks "${TASKS_FILE}" \ --output /etc/cron.d/sport-era-crawler \ --python-bin "${PYTHON_BIN}" \ --app-dir /app touch /var/log/cron.log echo "[crawler] cron file rendered from ${TASKS_FILE}" cat /etc/cron.d/sport-era-crawler exec cron -f