mirror of
https://github.com/m1ngsama/automa.git
synced 2025-12-24 10:51:20 +00:00
66 lines
4.3 KiB
YAML
66 lines
4.3 KiB
YAML
# docker-compose.yml 文件:Docker Compose 配置,用于启动 Minecraft Fabric 服务器容器。
|
||
# 版本:3.8(兼容大多数 Docker 版本)。
|
||
# 此文件已去敏,所有敏感数据移到 .env 或 configs 中。
|
||
# 运行命令:docker compose up -d(后台启动)。
|
||
|
||
version: "3.8"
|
||
|
||
services:
|
||
minecraft: # 服务名称(可自定义)
|
||
image: itzg/minecraft-server:latest # 使用镜像:itzg/minecraft-server(支持 Fabric 和自动模组管理)
|
||
container_name: mc-fabric-1.21.1 # 容器名称(便于 docker ps 查看)
|
||
ports:
|
||
- "25565:25565/tcp" # Minecraft 主端口(TCP,客户端连接)
|
||
- "25565:25565/udp" # 查询端口(UDP,服务器列表查询)
|
||
- "25575:25575/tcp" # RCON 端口(TCP,远程控制,与 server.properties 一致)
|
||
environment: # 环境变量:用于动态配置服务器参数
|
||
UID: "${UID}" # 从 .env 加载主机用户 UID(避免权限问题)
|
||
GID: "${GID}" # 从 .env 加载主机用户 GID
|
||
EULA: "TRUE" # 同意 Minecraft EULA(必须为 TRUE,否则启动失败)
|
||
TYPE: "FABRIC" # 服务器类型:FABRIC(支持模组加载器)
|
||
VERSION: "1.21.1" # Minecraft 版本(固定为 1.21.1)
|
||
FABRIC_VERSION: "latest" # Fabric 加载器版本(latest 为自动最新)
|
||
MEMORY: "4G" # 最大内存分配(4G 为示例,根据主机 RAM 调整;模组多建议 4G+)
|
||
INIT_MEMORY: "2G" # 初始内存分配(2G 为示例)
|
||
|
||
# 服务器核心设置(可覆盖 server.properties 中的值)
|
||
ONLINE_MODE: "false" # 正版验证(false 允许非正版客户端;生产环境建议 true 以防安全风险)
|
||
ENABLE_RCON: "true" # 启用 RCON(true,与 .env 密码结合)
|
||
RCON_PASSWORD: "${RCON_PASSWORD}" # RCON 密码(从 .env 加载,用户自行设置)
|
||
RCON_PORT: 25575 # RCON 端口(与 server.properties 一致)
|
||
DIFFICULTY: "normal" # 难度(normal 为默认)
|
||
GAMEMODE: "survival" # 游戏模式(survival 为生存)
|
||
MAX_PLAYERS: 20 # 最大玩家数(改为通用示例,原为特定值;根据资源调整)
|
||
MOTD: "A Minecraft Server" # 欢迎消息(改为通用示例,支持颜色代码)
|
||
VIEW_DISTANCE: 10 # 视图距离(10 为平衡性能)
|
||
SIMULATION_DISTANCE: 10 # 模拟距离(10 为平衡)
|
||
SPAWN_PROTECTION: 16 # 生成保护(16 为默认)
|
||
PVP: "true" # 启用 PVP(true)
|
||
WHITE_LIST: "false" # 启用白名单(false;如需启用,设为 true 并配置 whitelist.json)
|
||
ENFORCE_WHITELIST: "false" # 强制白名单(false)
|
||
|
||
# 其他优化设置
|
||
TZ: "${TZ}" # 时区(从 .env 加载)
|
||
REMOVE_OLD_MODS: "true" # 自动移除旧模组(true,保持 mods 干净)
|
||
|
||
# 可选:模组自动下载(如果不挂载 mods/ 目录,取消注释启用)
|
||
# MODRINTH_PROJECTS: "@/extras/mods.txt" # 从 mods.txt 加载 Modrinth slugs
|
||
# MODRINTH_DOWNLOAD_DEPENDENCIES: "required" # 只下载必需依赖
|
||
volumes: # 卷挂载:持久化数据和自定义文件
|
||
- ./data:/data # 持久化世界、backups、logs 等(重要,防止数据丢失)
|
||
- ./mods:/data/mods # 挂载用户 mods jar(从原服务器复制)
|
||
- ./configs/server.properties:/data/server.properties:ro # 挂载自定义 server.properties(ro 为只读,防止容器修改)
|
||
- ./configs/whitelist.json:/data/whitelist.json:ro # 挂载自定义白名单
|
||
- ./configs/ops.json:/data/ops.json:ro # 挂载自定义 OP
|
||
# 可选:挂载其他目录(根据需要取消注释)
|
||
# - ./data/backups:/data/backups # 备份目录
|
||
# - ./configs/EasyAuth:/data/EasyAuth:ro # EasyAuth 配置(如果有)
|
||
# - ./extras:/extras:ro # mods.txt 目录(如果启用自动下载)
|
||
restart: unless-stopped # 重启策略:除非手动停止,否则自动重启(提升可用性)
|
||
stdin_open: true # 启用 stdin(便于 attach 容器)
|
||
tty: true # 启用 tty(便于交互调试)
|
||
logging: # 日志配置(防止日志文件过大)
|
||
driver: "json-file" # 日志驱动(json-file 为 Docker 默认)
|
||
options:
|
||
max-size: "10m" # 单个日志文件最大大小(10m 为示例)
|
||
max-file: "3" # 最大日志文件数(3 个轮换)
|