mornedhels/enshrouded-server
Enshrouded游戏的Docker镜像,基于steamcmd镜像构建,使用supervisor管理启动、自动更新和清理流程。
| 变量 | 是否必填 | 默认值 | 约束条件 | 描述 | 开发中 |
|---|---|---|---|---|---|
SERVER_NAME | 否 | Enshrouded Server | 字符串 | 服务器名称 | |
SERVER_SLOT_COUNT | 否 | 16 | 整数(1-16) | 最大允许同时在线玩家数 | |
SERVER_QUERYPORT | 否 | *** | 整数 | Steam查询端口 | |
SERVER_IP | 否 | 0.0.0.0 | 字符串(IPv4格式) | 用于内网配置的服务器IP | |
SERVER_SAVE_DIR | 否 | ./savegame | 字符串 | 存档文件夹(支持相对路径和绝对路径) | |
SERVER_LOG_DIR | 否 | ./logs | 字符串 | 日志文件夹(支持相对路径和绝对路径) | |
SERVER_VOICE_CHAT_MODE | 否 | Proximity | Proximity | Global | 语音聊天模式: proximity( proximity语音)或Global(全服语音) | |
SERVER_ENABLE_VOICE_CHAT | 否 | false | 布尔值(true/false) | 启用或禁用语音聊天 | |
SERVER_ENABLE_TEXT_CHAT | 否 | false | 布尔值(true/false) | 启用或禁用文字聊天 | |
PUID | 否 | 4711 | 整数 | 运行服务器的用户UID(文件权限用) | |
PGID | 否 | 4711 | 整数 | 运行服务器的用户组GID(文件权限用) | |
UPDATE_CRON | 否 | 字符串(Cron格式) | 服务器自动更新计划(例:*/30 * * * * 每30分钟检查更新) | ||
UPDATE_CHECK_PLAYERS | 否 | false | 布尔值(true/false) | 更新前是否检查是否有玩家在线 | |
BACKUP_CRON | 否 | 字符串(Cron格式) | 存档自动备份计划(例:*/15 * * * * 每15分钟备份,建议不低于10分钟) | ||
BACKUP_DIR | 否 | ./backup | 字符串 | 备份文件夹(支持相对路径和绝对路径) | |
BACKUP_MAX_COUNT | 否 | 0 | 整数 | 保留备份文件数量(0为无限制) | |
RESTART_CRON | 否 | 字符串(Cron格式) | 服务器自动重启计划(例:0 3 * * * 每天3点重启) | ⚠️ | |
RESTART_CHECK_PLAYERS | 否 | false | 布尔值(true/false) | 重启前是否检查是否有玩家在线 | ⚠️ |
GAME_BRANCH | 否 | public | 字符串 | Steam分支(如testing测试版) | |
STEAMCMD_ARGS | 否 | validate | 字符串 | SteamCMD额外参数(用于更新) | |
SERVER_PASSWORD ⚠️已弃用 | 否 | 字符串 | ⚠️ 已弃用:服务器密码(Enshrouded已忽略此值,请使用服务器角色功能) | ||
| 服务器角色 | 否 | 详见链接说明 | |||
| 服务器难度 | 否 | 详见链接说明 | ⚠️ |
所有以SERVER_为前缀的环境变量,对应enshrouded_server.json配置文件中的选项(参考Enshrouded官方文档)。
⚠️:表示功能开发中
game/server目录下的enshrouded_server.json文件直接修改,或使用SERVER_ROLE_<index>_XYZ格式的环境变量。更多信息见官方文档。| 变量 | 描述 | 开发中 |
|---|---|---|
BOOTSTRAP_HOOK | 基础环境初始化后执行的命令 | |
UPDATE_PRE_HOOK | 更新前执行的命令 | |
UPDATE_POST_HOOK | 更新后执行的命令 | |
BACKUP_PRE_HOOK | 备份及清理前执行的命令 | |
BACKUP_POST_HOOK | 备份及清理后执行的命令 | |
RESTART_PRE_HOOK | 服务器重启前执行的命令 | |
RESTART_POST_HOOK | 服务器重启后执行的命令 |
脚本会等待钩子命令执行完成后再继续。
| 标签 | 虚拟化方式 | 描述 |
|---|---|---|
latest | Proton | 基于Proton的最新镜像 |
<version> | Proton | 基于Proton的固定版本镜像(≥1.x.x) |
stable-proton | Proton | 同latest标签 |
<version>-proton | Proton | 基于Proton的固定版本镜像 |
stable-wine | Wine | 基于Wine的最新稳定版镜像 |
<version>-wine | Wine | 基于Wine的固定版本镜像 |
dev-proton | Proton | 基于Proton的开发版镜像 |
dev-wine | Wine | 基于Wine的开发版镜像 |
dev-wine-staging | Wine | 基于Wine(staging分支)的开发版镜像 |
| 端口 | 描述 |
|---|---|
| ***/udp | Steam查询端口 |
| 卷路径 | 描述 |
|---|---|
| /opt/enshrouded | 游戏文件(Steam下载路径) |
注意:默认情况下,卷的文件所有者为UID和GID 4711(该用户通常不存在)。如需修改,可通过PUID和PGID环境变量指定。
官方配置说明
bashdocker run -d --name enshrouded \ --hostname enshrouded \ --restart=unless-stopped \ -p ***:***/udp \ -v ./game:/opt/enshrouded \ -e SERVER_NAME="Enshrouded服务器" \ -e SERVER_PASSWORD="secret" \ -e UPDATE_CRON="*/30 * * * *" \ -e PUID=4711 \ -e PGID=4711 \ mornedhels/enshrouded-server:latest
yamlservices: enshrouded: image: mornedhels/enshrouded-server:latest container_name: enshrouded hostname: enshrouded restart: unless-stopped stop_grace_period: 90s # 停止前等待90秒(确保存档完成) ports: - "***:***/udp" volumes: - ./game:/opt/enshrouded # 卷映射到当前目录下的game文件夹 environment: - SERVER_NAME=Enshrouded服务器 - SERVER_PASSWORD=secret # 已弃用,仅作示例 - UPDATE_CRON=*/30 * * * * # 每30分钟检查更新 - PUID=4711 - PGID=4711
说明:上述配置中,卷会创建在docker-compose.yml文件所在目录。如需使用Docker默认卷路径(如/var/lib/docker),可改用以下配置:
yamlservices: enshrouded: image: mornedhels/enshrouded-server:latest container_name: enshrouded hostname: enshrouded restart: unless-stopped stop_grace_period: 90s ports: - "***:***/udp" volumes: - game:/opt/enshrouded # 使用Docker命名卷 environment: - SERVER_NAME=Enshrouded服务器 - SERVER_PASSWORD=secret - UPDATE_CRON=*/30 * * * * - PUID=4711 - PGID=4711 volumes: game: # 定义命名卷
镜像内置备份脚本,可将最新存档压缩为ZIP文件。启用备份需设置BACKUP_CRON环境变量(如每15分钟备份),限制备份数量可设置BACKUP_MAX_COUNT。
SERVER_SAVE_DIR指定路径);[!WARNING]
恢复后需验证文件权限:解压的文件所有者需与环境变量PUID和PGID匹配。若容器以特权模式运行,文件会自动调整为指定的UID和GID。
强制更新:
bashdocker compose exec enshrouded supervisorctl start enshrouded-force-update
重置服务器角色:(会重启整个容器)⚠️
bashdocker compose exec enshrouded supervisorctl start enshrouded-reset-roles
重启服务器:(可用于定期维护)
bashdocker compose exec enshrouded supervisorctl restart enshrouded-server
服务器启动失败(未输出'HostOnline' (up)!日志)或更新失败,提示:
Error! App '2278520' state is 0x202 after update job.
原因:可能是文件权限错误或磁盘空间不足。
解决:检查PUID和PGID是否正确,确保文件所有者匹配,且磁盘空间充足。
自动更新失败,提示:
Error! App '2278520' state is 0x6 after update job.
官方解释:更新器无法连接到内容服务器。
可能原因:Steam应用清单损坏(参考#119)。
解决:执行强制更新命令。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务