update: 由于steamcmd被持久化存储,在容器内部,steam的登录状态无法被保存,所以去掉cron的计划任务,不在实时更新mod
This commit is contained in:
@@ -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"]
|
||||
@@ -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未安装,开始安装..."
|
||||
|
||||
Reference in New Issue
Block a user