Fix: 修复环境变量无法穿透的问题,导致crontab无法正确更新模组

This commit is contained in:
2025-07-24 23:54:22 +08:00
parent 7e15b3a84e
commit ee8a5840df
3 changed files with 22 additions and 2 deletions

View File

@@ -39,8 +39,7 @@ RUN chown -R steam:steam ${STEAMCMD_DIR} && \
chown steam:steam /opt/updatemod.sh && \ chown steam:steam /opt/updatemod.sh && \
chown -R steam:steam /opt/games chown -R steam:steam /opt/games
# 创建crontab配置文件 RUN touch /etc/cron.d/updatemod
RUN echo "*/15 * * * * /opt/updatemod.sh >> /var/log/updatemod.log 2>&1" > /etc/cron.d/updatemod
WORKDIR ${STEAMCMD_DIR} WORKDIR ${STEAMCMD_DIR}

View File

@@ -17,6 +17,19 @@ setup_crontab() {
echo "设置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服务 # 启动cron服务
service cron start service cron start

View File

@@ -6,6 +6,11 @@
set -e set -e
# 加载环境变量解决cron任务无法读取环境变量的问题
if [ -f "/etc/environment" ]; then
export $(cat /etc/environment | xargs)
fi
# 设置日志文件路径 # 设置日志文件路径
LOG_FILE="/var/log/updatemod.log" LOG_FILE="/var/log/updatemod.log"
@@ -17,6 +22,9 @@ echo "==========================================" >> "$LOG_FILE"
# 检查环境变量 # 检查环境变量
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量" >> "$LOG_FILE" 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 exit 1
fi fi