From ee8a5840df58b8e17a18bfaea5448c10a73ef862 Mon Sep 17 00:00:00 2001 From: Dcrclub Date: Thu, 24 Jul 2025 23:54:22 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E4=BF=AE=E5=A4=8D=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=97=A0=E6=B3=95=E7=A9=BF=E9=80=8F=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98,=E5=AF=BC=E8=87=B4crontab=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E6=9B=B4=E6=96=B0=E6=A8=A1=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DockerFile/Dockerfile | 3 +-- DockerFile/start.sh | 13 +++++++++++++ DockerFile/updatemod.sh | 8 ++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) 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