Pas la peine de présenter ce jeu, je fais seulement ce petit article pour expliquer comment déployer rapidement et simplement un serveur Minecraft sous Docker.

Je vous suggère de passer voir les articles concernant Docker pour son installation, et l’utilisation de Docker Compose si jamais ce n’est pas déjà fait. L’image que nous allons utiliser est celle de itzg, qui propose tout un tas de paramètres afin de personnaliser au mieux le déploiement du serveur. Que ce soit le type de serveur (Vanilla, Spigot, Paper), la version, le mode de jeu… Plus de détails sur la page de son projet GitHub.

Les fichiers de déploiement

Tout d’abord, le fichier docker-compose.yml :

services:
  mcserver:
    image: docker.io/itzg/minecraft-server:latest
    container_name: mcserver
    hostname: mcserver
    env_file: mcserver.env
    cpus: 2
    mem_limit: 3G
    volumes:
      - /opt/mcserver:/data
    ports:
      - 25565:25565
    tty: true
    stdin_open: true
    restart: always

Ensuite, le fichier de configuration mcserver.env :

UID=1000
GID=1000
TZ=Europe/Paris
EULA=true
OVERRIDE_SERVER_PROPERTIES=true
STOP_SERVER_ANNOUNCE_DELAY=10
MOTD=Personal Survival Server
ENABLE_ROLLING_LOGS=true
TYPE=spigot
VERSION=1.21
SNOOPER_ENABLED=false
MAX_PLAYERS=8
DIFFICULTY=hard
VIEW_DISTANCE=12
SIMULATION_DISTANCE=10
MAX_WORLD_SIZE=10000
SPAWN_PROTECTION=0
ENABLE_COMMAND_BLOCK=true
SEED=
LEVEL=world
ALLOW_NETHER=true
PVP=false
MODE=survival
FORCE_GAMEMODE=true
HARDCORE=false
OPS=JeremKy
WHITELIST=JeremKy
ENFORCE_WHITELIST=true
NETWORK_COMPRESSION_THRESHOLD=128
PLAYER_IDLE_TIMEOUT=0
MEMORY=2G
ENABLE_RCON=true
RCON_PASSWORD=Password
ONLINE_MODE=true
ENFORCE_SECURE_PROFILE=true

Certains paramètres dépendent du type de serveur déployé (Vanilla ou autre). En les laissant à vide, ils ne seront pas utilisés. Si vous désirez ajouter des paramètres de la documentation, ils sont à ajouter dans la zone environment du docker-compose.yml et dans le fichier mcserver.env, sinon ils ne seront pas vu par Docker.

Point important également : dans cet exemple, Docker est configuré pour limiter le nombre de CPUs utilisés, ainsi que la quantité de RAM allouée. Si vous désirez changer la quantité de RAM, la modification est à effectuer à la fois au niveau du conteneur lui-même, mais également dans la configuration de Minecraft (variables RAM et MEMORY dans le fichier .env)

Comme toujours, si vous avez besoin de précisions sur le déploiement et la configuration, n’hésitez pas !