DEV Community

Cover image for 🐳 Minecraft + Docker: Mi configuración personal para no sufrir con Java
Tomás Alegre Sepúlveda
Tomás Alegre Sepúlveda

Posted on

🐳 Minecraft + Docker: Mi configuración personal para no sufrir con Java

🇺🇸 Read this post in English

No soy ningún gurú de Java, y seré honesto: gestionar servidores de Minecraft siempre me pareció un rompecabezas extraño. A pesar de que Minecraft pueda parecer un juego "random" de poner cubitos, la gestión técnica detrás de un servidor (hilos, memoria, recolección de basura) es un reto de optimización fascinante.

En su momento intenté crear plugins (con resultados... "interesantes"), pero aprendí a la mala que la verdadera batalla casi siempre es la configuración.

¿Te ha pasado? Quieres jugar un Survival con amigos, buscas "mejor configuración paper 1.21" y terminas con 20 pestañas abiertas y tres wikis que se contradicen.

La Iniciativa: Basta de Caos

Cansado de copiar y pegar las mismas líneas de configuración una y otra vez, se me ocurrió armar Paper Config Optimized.

No quería hacer "otra guía más". Quería un lugar donde centralizar de verdad las mejores prácticas de la comunidad en archivos listos para usar. De hecho, me he vuelto tan fan de esta "infraestructura como código" que hace poco hice mi primera contribución al repositorio oficial de la imagen de Docker que usamos (PR #3076 en itzg/docker-minecraft-server) y planeo seguir aportando para mejorar el ecosistema.

"La Receta" (Configuración)

Te dejo por aquí la configuración que uso siempre. Es básicamente mi plantilla de "copiar, pegar y olvidarse".

Lo importante aquí es que le estamos diciendo a Docker dos cosas clave:

  1. "Usa Aikar's Flags": Para que Java no se ponga caprichoso con la memoria.
  2. "Descargar las configs del repositorio": Para que el juego corra fluido sin tener que tocar nada.
services:
  mc:
    image: itzg/minecraft-server
    container_name: paper-lite
    restart: unless-stopped
    ports:
      - "25565:25565"

    # Consola interactiva (nunca está de más para ver qué pasa)
    stdin_open: true
    tty: true

    environment:
      # Papeleo burocrático de Mojang y elección del software (Paper vuela)
      EULA: "TRUE"
      TYPE: "PAPER"

      # Siempre a la última. Vivir al límite.
      VERSION: "LATEST"

      # Activamos las flags de Aikar.
      # Créeme, no quieres gestionar el Garbage Collector manualmente.
      USE_AIKAR_FLAGS: "true"

      # Zona horaria (cámbiala a la tuya para no volverte loco con los logs)
      TZ: "America/Santiago"

      # ✨ LA MAGIA:
      # Inyecta las configs optimizadas del repositorio automáticamente al iniciar.
      PAPER_CONFIG_REPO: "https://raw.githubusercontent.com/Alpha018/paper-config-optimized/main"

    volumes:
      - ./minecraft-data:/data
Enter fullscreen mode Exit fullscreen mode

¿Cómo correr esto?

Es tan simple como meter eso en un archivo docker-compose.yml, abrir una terminal en la carpeta y tirar un:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

⚖️ Balance: Pros y Contras

Como en todo en ingeniería, no hay balas de plata. Esta configuración es mi favorita, pero hay que ser transparentes:

✅ Lo Bueno (Pros)

  • Velocidad: Pasas de "cero" a "servidor optimizado" en 2 minutos.
  • Mantenimiento: Al usar PAPER_CONFIG_REPO, si mañana salen nuevas mejoras de rendimiento, solo tienes que reiniciar el contenedor para aplicarlas.
  • Estabilidad: Usar las Aikar's Flags elimina el 90% de los tirones de lag por culpa de Java.

❌ Lo Malo (Contras)

  • Caja Negra: Si te gusta ajustar cada milímetro de la view-distance a mano, sentirás que pierdes algo de control (aunque siempre puedes sobrescribir los archivos).
  • Dependencia: Dependes de que mi repositorio (o el fork que te hagas) esté en línea para descargar las configs al inicio.

🚀 Para Usuarios Avanzados

Esta configuración es ideal para lo que llamo "Survival Técnico Lite". Pero si estás planeando montar una comunidad pública masiva (50+ jugadores) o quieres entender por qué 12GB de RAM es mi número mágico para servidores grandes, escribí una guía técnica mucho más profunda.

Échale un ojo a la Guía Técnica Avanzada en Buy Me a Coffee


💌 Agradecimientos Especiales

A una chica que, sin saberlo, me empujó a seguir creando y programando en mi tiempo libre. A quien alguna vez fue mi chispa: para “YLP”, con gratitud… y con cicatrices que también enseñan.

Top comments (0)