Update mc-server & Add docker registry

This commit is contained in:
ChenKaiLiuG
2026-01-01 18:05:00 +08:00
parent 55bf89d276
commit f3fe55ef67
7 changed files with 359 additions and 19 deletions

View File

@@ -0,0 +1,132 @@
version: '3.8'
services:
# 1. 遊戲管理中心
crafty:
container_name: crafty_controller
image: registry.gitlab.com/crafty-controller/crafty-4:latest
restart: unless-stopped
environment:
- TZ=Asia/Taipei
ports:
- "8000:8443" # 管理介面
- "1110:25555" # Velocity 代理端口
volumes:
- /docker/minecraft/crafty/backups:/crafty/backups
- /docker/minecraft/crafty/logs:/crafty/logs
- /docker/minecraft/crafty/servers:/crafty/servers
- /docker/minecraft/crafty/config:/crafty/app/config
- /docker/minecraft/crafty/import:/crafty/import
networks:
- minecraft_net
# 資源限制(避免單一伺服器吃光所有資源)
deploy:
resources:
limits:
memory: 24G
reservations:
memory: 8G # 保證最低 8GB適合多伺服器同時運行
# 2. 全方位監控儀表板 (Netdata)
netdata:
image: netdata/netdata:latest
container_name: netdata_minecraft
hostname: minecraft-host # 便於識別
restart: unless-stopped
ports:
- "8010:19999" # 監控網頁介面
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
environment:
- TZ=Asia/Taipei
# 可選Netdata Cloud 整合
- NETDATA_CLAIM_TOKEN=${NETDATA_CLAIM_TOKEN:-} # your-token-here
- NETDATA_CLAIM_ROOMS=${NETDATA_CLAIM_ROOMS:-} # your-room-id-here
# 數據保留設定
- NETDATA_DBENGINE_MULTIHOST_DISK_SPACE=5120 # 5GB 磁碟空間(保留 7 天)
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata # 時序資料庫存放位置,會成長到約 5GB
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/run/docker.sock:/var/run/docker.sock:ro # 關鍵:讓 Netdata 讀取 Docker 狀態
- /docker/minecraft/crafty/servers:/host/minecraft:ro # 監控 MC 伺服器目錄大小
networks:
- minecraft_net
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
# 3. 即時日誌瀏覽器 (Dozzle) - 看報錯用
dozzle:
image: amir20/dozzle:latest
container_name: dozzle_minecraft
restart: unless-stopped
environment:
- TZ=Asia/Taipei
- DOZZLE_LEVEL=info
- DOZZLE_TAILSIZE=500 # 日誌顯示行數
- DOZZLE_FILTER=name=crafty*|name=minecraft* # 只顯示 MC 相關容器
ports:
- "8020:8080" # 訪問 http://localhost:8020 即可看到所有容器日誌
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- minecraft_net
deploy:
resources:
limits:
memory: 256M
# 4. 備份服務 (可選) - 自動備份到雲端或其他位置
# duplicati:
# image: lscr.io/linuxserver/duplicati:latest
# container_name: minecraft_backup
# restart: unless-stopped
# environment:
# - PUID=1000
# - PGID=1000
# - TZ=Asia/Taipei
# ports:
# - "8200:8200"
# volumes:
# - ./duplicati/config:/config
# - ./crafty/backups:/backups:ro
# - ./crafty/servers:/source:ro
# networks:
# - minecraft_net
# 5. Watchtower - 自動更新容器映像檔(可選)
# watchtower:
# image: containrrr/watchtower:latest
# container_name: watchtower_minecraft
# restart: unless-stopped
# environment:
# - TZ=Asia/Taipei
# - WATCHTOWER_CLEANUP=true
# - WATCHTOWER_SCHEDULE=0 0 4 * * * # 每天凌晨 4 點檢查更新
# - WATCHTOWER_INCLUDE_STOPPED=false
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# networks:
# - minecraft_net
networks:
minecraft_net:
driver: bridge
volumes:
netdataconfig:
netdatalib:
netdatacache: