# 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 个轮换)