automa/minecraft/docker-compose.yml

66 lines
4.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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" # 启用 RCONtrue与 .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" # 启用 PVPtrue
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.propertiesro 为只读,防止容器修改)
- ./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 个轮换)