update: 由于steamcmd被持久化存储,在容器内部,steam的登录状态无法被保存,所以去掉cron的计划任务,不在实时更新mod

This commit is contained in:
2025-07-25 19:41:02 +08:00
parent 7d732ba128
commit 2013539470
2 changed files with 0 additions and 51 deletions

View File

@@ -18,7 +18,6 @@ RUN apt-get update && apt-get install -y \
libtinfo5 \
libvorbisfile3 \
lib32z1 \
cron \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p ${STEAMCMD_DIR}
@@ -39,8 +38,6 @@ RUN chown -R steam:steam ${STEAMCMD_DIR} && \
chown steam:steam /opt/updatemod.sh && \
chown -R steam:steam /opt/games
RUN touch /etc/cron.d/updatemod
WORKDIR ${STEAMCMD_DIR}
CMD ["/opt/start.sh"]

View File

@@ -7,52 +7,6 @@ echo "SteamCMD容器启动中..."
echo "时间: $(date)"
echo "=========================================="
# 启动cron服务并设置crontab任务
setup_crontab() {
# 检查是否启用自动更新
if [ "${ENABLE_AUTO_UPDATE:-true}" != "true" ]; then
echo "自动更新已禁用 (ENABLE_AUTO_UPDATE=false)"
return
fi
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
# 创建日志目录
mkdir -p /var/log
touch /var/log/updatemod.log
chmod 666 /var/log/updatemod.log
# 获取更新间隔默认15分钟
local interval="${UPDATE_INTERVAL:-15}"
# 设置crontab任务
echo "*/$interval * * * * /opt/updatemod.sh >> /var/log/updatemod.log 2>&1" | crontab -
# 验证crontab任务
echo "当前crontab任务列表"
crontab -l
echo "crontab自动更新任务设置完成"
echo "任务将每${interval}分钟自动运行一次 /opt/updatemod.sh"
echo "日志文件位置: /var/log/updatemod.log"
}
copy_files() {
local mod_path=$1
local parent_path=$2
@@ -228,8 +182,6 @@ else
echo "SteamCMD已存在跳过安装"
fi
# 设置crontab自动更新任务
setup_crontab
if [ ! -f "/root/Steam/steamapps/common/DayZServer/DayZServer" ]; then
echo "DayZServer未安装开始安装..."