🔧 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:
5
.env
5
.env
@@ -1,7 +1,4 @@
|
|||||||
# Steam账户信息
|
|
||||||
# 请将以下值替换为您的实际Steam用户名和密码
|
|
||||||
STEAM_USERNAME=your_steam_username
|
STEAM_USERNAME=your_steam_username
|
||||||
STEAM_PASSWORD=your_steam_password
|
STEAM_PASSWORD=your_steam_password
|
||||||
|
|
||||||
# 注意:为了安全起见,建议使用Steam Guard令牌而不是账户密码
|
MOD_IDS=123456789,987654321
|
||||||
# 如果启用了Steam Guard,密码应该是您的Steam Guard令牌
|
|
||||||
@@ -24,7 +24,8 @@ RUN mkdir -p ${STEAMCMD_DIR}
|
|||||||
|
|
||||||
COPY install_dayz.sh /opt/install_dayz.sh
|
COPY install_dayz.sh /opt/install_dayz.sh
|
||||||
COPY start.sh /opt/start.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
|
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 -R steam:steam /home/steam && \
|
||||||
chown steam:steam /opt/install_dayz.sh && \
|
chown steam:steam /opt/install_dayz.sh && \
|
||||||
chown steam:steam /opt/start.sh && \
|
chown steam:steam /opt/start.sh && \
|
||||||
|
chown steam:steam /opt/updatemod.sh && \
|
||||||
chown -R steam:steam /opt/games
|
chown -R steam:steam /opt/games
|
||||||
|
|
||||||
WORKDIR ${STEAMCMD_DIR}
|
WORKDIR ${STEAMCMD_DIR}
|
||||||
|
|||||||
54
DockerFile/updatemod.sh
Normal file
54
DockerFile/updatemod.sh
Normal 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 "=========================================="
|
||||||
@@ -88,6 +88,7 @@ docker-compose up -d
|
|||||||
| `DAYZ_MISSIONS` | `dayzOffline.chernarusplus` | 服务器地图 |
|
| `DAYZ_MISSIONS` | `dayzOffline.chernarusplus` | 服务器地图 |
|
||||||
| `DAYZ_SERVER_PORT` | `2302` | 服务器端口 |
|
| `DAYZ_SERVER_PORT` | `2302` | 服务器端口 |
|
||||||
| `DAYZ_CPU_COUNT` | `4` | 使用的CPU核心数 |
|
| `DAYZ_CPU_COUNT` | `4` | 使用的CPU核心数 |
|
||||||
|
| `MOD_IDS` | `空` | 需要更新的modid,例如:"123456789,987654321" |
|
||||||
|
|
||||||
### 端口映射
|
### 端口映射
|
||||||
|
|
||||||
@@ -171,6 +172,13 @@ docker-compose up -d
|
|||||||
2. Mod文件夹应以 `@` 开头
|
2. Mod文件夹应以 `@` 开头
|
||||||
3. 重启服务器以加载新Mod
|
3. 重启服务器以加载新Mod
|
||||||
|
|
||||||
|
### 更新客户端Mod
|
||||||
|
需要先停止容器运行
|
||||||
|
`docker compose down`
|
||||||
|
然后运行更新命令
|
||||||
|
`docker compose run --rm steamcmd updatemod`
|
||||||
|
更新完毕后启动docker容器即可.
|
||||||
|
|
||||||
### Mod配置示例
|
### Mod配置示例
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- STEAM_USERNAME=${STEAM_USERNAME:-}
|
- STEAM_USERNAME=${STEAM_USERNAME:-}
|
||||||
- STEAM_PASSWORD=${STEAM_PASSWORD:-}
|
- STEAM_PASSWORD=${STEAM_PASSWORD:-}
|
||||||
|
- MOD_IDS=${MOD_IDS:-}
|
||||||
- DAYZ_MISSIONS=dayzOffline.chernarusplus
|
- DAYZ_MISSIONS=dayzOffline.chernarusplus
|
||||||
- DAYZ_SERVER_PORT=2302
|
- DAYZ_SERVER_PORT=2302
|
||||||
- DAYZ_CPU_COUNT=4
|
- DAYZ_CPU_COUNT=4
|
||||||
|
|||||||
Reference in New Issue
Block a user