update: 由于steamcmd被持久化存储,在容器内部,steam的登录状态无法被保存,所以去掉cron的计划任务,不在实时更新mod
This commit is contained in:
@@ -18,7 +18,6 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libtinfo5 \
|
libtinfo5 \
|
||||||
libvorbisfile3 \
|
libvorbisfile3 \
|
||||||
lib32z1 \
|
lib32z1 \
|
||||||
cron \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN mkdir -p ${STEAMCMD_DIR}
|
RUN mkdir -p ${STEAMCMD_DIR}
|
||||||
@@ -39,8 +38,6 @@ 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
|
||||||
|
|
||||||
RUN touch /etc/cron.d/updatemod
|
|
||||||
|
|
||||||
WORKDIR ${STEAMCMD_DIR}
|
WORKDIR ${STEAMCMD_DIR}
|
||||||
|
|
||||||
CMD ["/opt/start.sh"]
|
CMD ["/opt/start.sh"]
|
||||||
@@ -7,52 +7,6 @@ echo "SteamCMD容器启动中..."
|
|||||||
echo "时间: $(date)"
|
echo "时间: $(date)"
|
||||||
echo "=========================================="
|
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() {
|
copy_files() {
|
||||||
local mod_path=$1
|
local mod_path=$1
|
||||||
local parent_path=$2
|
local parent_path=$2
|
||||||
@@ -228,8 +182,6 @@ else
|
|||||||
echo "SteamCMD已存在,跳过安装"
|
echo "SteamCMD已存在,跳过安装"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 设置crontab自动更新任务
|
|
||||||
setup_crontab
|
|
||||||
|
|
||||||
if [ ! -f "/root/Steam/steamapps/common/DayZServer/DayZServer" ]; then
|
if [ ! -f "/root/Steam/steamapps/common/DayZServer/DayZServer" ]; then
|
||||||
echo "DayZServer未安装,开始安装..."
|
echo "DayZServer未安装,开始安装..."
|
||||||
|
|||||||
Reference in New Issue
Block a user