🔧 chore(.env): 移除Steam账户信息并添加MOD_IDS配置

- 删除敏感的环境变量注释
- 添加MOD_IDS配置用于mod管理

📦 build(Dockerfile): 添加mod更新脚本支持

- 添加updatemod.sh脚本文件
- 设置脚本执行权限
- 更新文件所有权配置

📝 docs(README): 添加MOD_IDS说明和mod更新指南

- 在环境变量表格中添加MOD_IDS说明
- 新增客户端mod更新操作指南

📦 build(docker-compose): 添加MOD_IDS环境变量支持

- 在docker-compose.yml中添加MOD_IDS环境变量配置
This commit is contained in:
Dcr
2025-07-24 11:53:43 +08:00
parent 9f993b7793
commit c5baea9abd
5 changed files with 67 additions and 5 deletions

View File

@@ -24,7 +24,8 @@ RUN mkdir -p ${STEAMCMD_DIR}
COPY install_dayz.sh /opt/install_dayz.sh
COPY start.sh /opt/start.sh
RUN chmod +x /opt/install_dayz.sh /opt/start.sh
COPY updatemod.sh /opt/updatemod.sh
RUN chmod +x /opt/install_dayz.sh /opt/start.sh /opt/updatemod.sh
RUN useradd -m -d /home/steam steam
@@ -34,6 +35,7 @@ RUN chown -R steam:steam ${STEAMCMD_DIR} && \
chown -R steam:steam /home/steam && \
chown steam:steam /opt/install_dayz.sh && \
chown steam:steam /opt/start.sh && \
chown steam:steam /opt/updatemod.sh && \
chown -R steam:steam /opt/games
WORKDIR ${STEAMCMD_DIR}

54
DockerFile/updatemod.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
# DayZ Mod更新脚本
# 使用方法: docker compose run --rm steamcmd updatemod
set -e
echo "=========================================="
echo "开始更新DayZ Mod..."
echo "时间: $(date)"
echo "=========================================="
# 检查环境变量
if [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then
echo "错误: 请设置 STEAM_USERNAME 和 STEAM_PASSWORD 环境变量"
exit 1
fi
# 切换到SteamCMD目录
cd /opt/steamcmd
# 检查SteamCMD是否已安装
if [ ! -f "/opt/steamcmd/steamcmd.sh" ]; then
echo "SteamCMD未安装开始下载和安装..."
wget -O /opt/steamcmd/steamcmd_linux.tar.gz ${STEAMCMD_URL}
tar xvzf /opt/steamcmd/steamcmd_linux.tar.gz -C /opt/steamcmd
rm /opt/steamcmd/steamcmd_linux.tar.gz
chmod +x /opt/steamcmd/steamcmd.sh
echo "SteamCMD安装完成"
fi
# 更新Mod如果有配置的话
if [ -n "$MOD_IDS" ]; then
echo "开始更新Mod..."
IFS=',' read -ra MOD_ARRAY <<< "$MOD_IDS"
for mod_id in "${MOD_ARRAY[@]}"; do
echo "更新Mod ID: $mod_id"
./steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +workshop_download_item 221100 $mod_id +quit
if [ $? -eq 0 ]; then
echo "Mod $mod_id 更新完成"
else
echo "Mod $mod_id 更新失败"
fi
done
else
echo "未配置Mod ID跳过Mod更新"
fi
echo "=========================================="
echo "Mod更新完成"
echo "时间: $(date)"
echo "=========================================="