diff --git a/DockerFile/Dockerfile b/DockerFile/Dockerfile index e503aaf..8a049c9 100644 --- a/DockerFile/Dockerfile +++ b/DockerFile/Dockerfile @@ -39,8 +39,7 @@ RUN chown -R steam:steam ${STEAMCMD_DIR} && \ chown steam:steam /opt/updatemod.sh && \ chown -R steam:steam /opt/games -# 创建crontab配置文件 -RUN echo "*/15 * * * * /opt/updatemod.sh >> /var/log/updatemod.log 2>&1" > /etc/cron.d/updatemod +RUN touch /etc/cron.d/updatemod WORKDIR ${STEAMCMD_DIR} diff --git a/DockerFile/start.sh b/DockerFile/start.sh index 73d0413..2670bbe 100644 --- a/DockerFile/start.sh +++ b/DockerFile/start.sh @@ -17,6 +17,19 @@ setup_crontab() { echo "设置crontab自动更新任务..." + # 保存环境变量到/etc/environment文件(解决cron任务无法读取环境变量的问题) + echo "保存环境变量到/etc/environment..." + cat > /etc/environment << EOF +STEAM_USERNAME=${STEAM_USERNAME} +STEAM_PASSWORD=${STEAM_PASSWORD} +MOD_IDS=${MOD_IDS} +DAYZ_MISSIONS=${DAYZ_MISSIONS} +DAYZ_SERVER_PORT=${DAYZ_SERVER_PORT} +DAYZ_CPU_COUNT=${DAYZ_CPU_COUNT} +ENABLE_AUTO_UPDATE=${ENABLE_AUTO_UPDATE} +UPDATE_INTERVAL=${UPDATE_INTERVAL} +EOF + # 启动cron服务 service cron start diff --git a/DockerFile/updatemod.sh b/DockerFile/updatemod.sh index 913f980..fa62372 100644 --- a/DockerFile/updatemod.sh +++ b/DockerFile/updatemod.sh @@ -6,6 +6,11 @@ set -e +# 加载环境变量(解决cron任务无法读取环境变量的问题) +if [ -f "/etc/environment" ]; then + export $(cat /etc/environment | xargs) +fi + # 设置日志文件路径 LOG_FILE="/var/log/updatemod.log" @@ -17,6 +22,9 @@ echo "==========================================" >> "$LOG_FILE" # 检查环境变量 if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量" >> "$LOG_FILE" + echo "当前环境变量状态:" >> "$LOG_FILE" + echo "STEAM_USERNAME: ${STEAM_USERNAME:-未设置}" >> "$LOG_FILE" + echo "STEAM_PASSWORD: ${STEAM_PASSWORD:-未设置}" >> "$LOG_FILE" exit 1 fi