在linux系统中使用docker来构建一个dayzserver容器
|
1 сар өмнө | |
---|---|---|
DockerFile | 1 сар өмнө | |
.dockerignore | 1 сар өмнө | |
.env | 1 сар өмнө | |
README.md | 1 сар өмнө | |
docker-compose.yml | 1 сар өмнө | |
install.sh | 1 сар өмнө |
这是一个用于快速部署DayZ服务器的Docker化解决方案。通过Docker容器化技术,您可以轻松地在任何支持Docker的系统上运行DayZ服务器,无需复杂的本地环境配置。
git clone <repository-url> ./Docker_DayzServer
cd Docker_DayzServer
创建 .env
文件并配置您的Steam账户信息:
# 创建环境变量文件
cat > .env << EOF
STEAM_USERNAME=your_steam_username
STEAM_PASSWORD=your_steam_password
DAYZ_MISSIONS=dayzOffline.chernarusplus
DAYZ_SERVER_PORT=2302
DAYZ_CPU_COUNT=4
EOF
重要: 请确保使用有效的Steam账户,该账户 不需要 拥有DayZ游戏。
# 给安装脚本执行权限
chmod +x install.sh
# 运行安装脚本(需要root权限)
sudo ./install.sh
安装脚本将自动:
如果您想手动部署,可以按以下步骤操作:
# 构建Docker镜像, 如果仓库有更新, 都需要重新 build 一次, 更新不需要 --no-cache
docker-compose build --no-cache
# 运行steamcmd容器进行初始安装
docker-compose run --rm steamcmd
# 启动所有服务
docker-compose up -d
变量名 | 默认值 | 说明 |
---|---|---|
STEAM_USERNAME |
- | Steam用户名(必需) |
STEAM_PASSWORD |
- | Steam密码(必需) |
DAYZ_MISSIONS |
dayzOffline.chernarusplus |
服务器地图 |
DAYZ_SERVER_PORT |
2302 |
服务器端口 |
DAYZ_CPU_COUNT |
4 |
使用的CPU核心数 |
MOD_IDS |
- | Mod ID列表,用逗号分隔 |
ENABLE_AUTO_UPDATE |
true |
是否启用自动更新 |
UPDATE_INTERVAL |
15 |
自动更新间隔(分钟) |
容器端口 | 主机端口 | 说明 |
---|---|---|
2302/udp | 2302/udp | DayZ游戏端口 |
2305/udp | 2305/udp | DayZ查询端口 |
2314/udp | 2314/udp | BattlEye RCon端口 |
Docker_DayzServer/
├── docker-compose.yml # Docker Compose配置文件
├── DockerFile/ # Docker构建文件
│ ├── Dockerfile # Docker镜像定义
│ ├── install_dayz.sh # DayZ安装脚本
│ └── start.sh # 启动脚本
├── install.sh # 一键安装脚本
└── dayz/ # 数据目录(自动创建)
├── .steamcmd/ # SteamCMD数据
├── .dayz_server/ # DayZ服务器文件
├── client_mod/ # 客户端Mod
├── server_mod/ # 服务端Mod
├── battleye/ # BattlEye配置
├── profiles/ # 服务器配置文件
└── mpmissions/ # 地图文件
# 启动所有服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f steamcmd
# 停止所有服务
docker-compose down
# 停止并删除数据卷(谨慎使用)
docker-compose down -v
# 重启服务
docker-compose restart steamcmd
# 重新构建镜像并启动
docker-compose build --no-cache
docker-compose up -d
项目现在支持自动Mod管理功能:
配置Mod ID: 在环境变量中设置 MOD_IDS
,例如:
MOD_IDS=123456789,987654321,456789123
自动更新: 系统会自动下载和更新指定的Mod
自动软链接: 系统会根据Mod ID自动创建软链接到 client_mod
目录
智能命名: 优先使用Mod的 meta.cpp
中的名称,如果没有则使用Mod ID
如果您想手动管理Mod:
dayz/client_mod/
目录@
开头ENABLE_AUTO_UPDATE=true
(默认启用)UPDATE_INTERVAL
设置(默认15分钟)docker-compose exec steamcmd cat /var/log/updatemod.log
docker compose down
docker compose run --rm steamcmd updatemod
dayz/
├── client_mod/
│ ├── @CF # 自动创建的软链接
│ ├── @DayZExpansion # 自动创建的软链接
│ └── @CustomMod # 手动添加的Mod
└── server_mod/
└── @DayZExpansionServer # 服务端Mod
# 查看容器日志
docker-compose logs -f steamcmd
# 查看特定时间段的日志
docker-compose logs --since="2024-01-01T00:00:00" steamcmd
# 检查容器状态
docker-compose ps
# 检查资源使用情况
docker stats steamcmd
BattlEye配置文件位于 dayz/battleye/beserver_x64.cfg
,包含:
确保以下端口在防火墙中开放:
Steam登录失败
服务器无法启动
docker-compose logs steamcmd
Mod加载失败
# 进入容器进行调试
docker-compose exec steamcmd bash
# 查看容器资源使用情况
docker stats steamcmd
# 检查网络连接
docker-compose exec steamcmd netstat -tulpn
欢迎提交Issue和Pull Request来改进这个项目!
本项目采用MIT许可证。详见LICENSE文件。
如果您在使用过程中遇到问题,请:
祝您游戏愉快! 🎮