#!/bin/sh # cronjob 容器入口:注入环境变量到 crontab,启动 crond # 安装 curl(仅首次,后续重启容器时已安装则跳过) command -v curl > /dev/null 2>&1 || apk add --no-cache curl > /dev/null 2>&1 # 确保脚本有执行权限(Windows 开发环境挂载的文件可能缺少 +x) chmod +x /app/daily-task.sh 2>/dev/null # 将当前环境变量导出到文件,供 cron 任务使用(cron 不会继承容器环境变量) # 排除特殊变量,导出所有业务相关配置 env | grep -v -E '^(HOME|PATH|HOSTNAME|SHLVL|PWD|_)=' > /etc/environment 2>/dev/null # 读取调度表达式,默认凌晨 4:00 CRON_SCHEDULE="${CRON_SCHEDULE:-0 4 * * *}" # 生成 crontab echo "${CRON_SCHEDULE} . /etc/environment; /app/daily-task.sh >> /proc/1/fd/1 2>&1" > /etc/crontabs/root echo "[cronjob] schedule: ${CRON_SCHEDULE}" echo "[cronjob] target: ${DLWEB_INTERNAL_URL:-http://dlweb}" echo "[cronjob] starting crond..." # 前台运行 crond crond -f -l 2