Generador de Docker Compose y eggs de Pterodactyl
Armá un docker-compose.yml listo para producción para Minecraft, una app de Node, un stack con Postgres o un sitio estático con Nginx — o generá el JSON de un egg de Pterodactyl para importar en tu propio panel.
Sin variables adicionales.
# docker-compose.yml generado en solumecore.com/tools/docker-pterodactyl
# Compose Specification: no hace falta la clave "version:" en Docker Compose v2+
services:
minecraft:
image: itzg/minecraft-server:latest
container_name: minecraft
restart: unless-stopped
ports:
- "25565:25565"
volumes:
- mc-data:/data
environment:
- EULA=TRUE
- TYPE=PAPER
- VERSION=LATEST
- MEMORY=4G
- DIFFICULTY=normal
- MOTD=A Minecraft Server powered by SolumeCore
- MAX_PLAYERS=20
- ONLINE_MODE=TRUE
tty: true
stdin_open: true
volumes:
mc-data:
¿Qué es Docker Compose y por qué usarlo para un servidor de juego o app?
Docker Compose describe, en un solo archivo YAML, todos los contenedores (servicios), puertos, volúmenes y variables de entorno que necesita tu aplicación. En vez de acordarte de una larga lista de flags de "docker run", corrés un único docker compose up -d y todo se levanta con exactamente la misma configuración cada vez. Eso hace que tu servidor sea reproducible (podés recrearlo idéntico en otra máquina), fácil de versionar en Git, y trivial de destruir y volver a levantar sin miedo — algo especialmente valioso para servidores de juego, donde probás mods, versiones o configuraciones seguido.
¿Por qué el YAML generado no tiene la clave "version:"?
Durante años, docker-compose.yml empezaba con una línea version: "3.8" que indicaba qué subset del esquema de Compose usaba el archivo. Desde que Docker Compose V2 (el que viene integrado como docker compose, sin guion, en Docker Desktop y en el Docker Engine moderno) adoptó la "Compose Specification", esa clave quedó obsoleta: el motor simplemente ignora la versión y aplica siempre el esquema más reciente que soporta. Docker incluso muestra un warning si la dejás. Por eso este generador arma un archivo sin version:, que es la práctica actual recomendada.
itzg/minecraft-server: el estándar de facto
Para Minecraft usamos la imagen itzg/minecraft-server, mantenida por la comunidad desde hace más de una década y descargada cientos de millones de veces en Docker Hub. En vez de tener que instalar Java, descargar el JAR correcto y escribir tu propio script de arranque, esta imagen hace todo eso por vos a partir de variables de entorno simples: EULA=TRUE (obligatoria, sin ella el contenedor arranca y se apaga solo), TYPE para elegir el server software (Paper, Vanilla, Forge, Fabric y más), VERSION, MEMORY para el heap de la JVM, y muchas otras. Es, con diferencia, la forma más usada de correr Minecraft en Docker hoy.
¿Qué es un egg de Pterodactyl?
Pterodactyl es un panel de administración open source para servidores de juego, muy popular entre hostings y comunidades que corren su propia infraestructura. Un "egg" es la plantilla reutilizable que le dice al panel cómo instalar y arrancar un tipo de servidor: qué imagen Docker usar, qué comando de arranque correr, qué variables mostrarle al usuario final (como la versión o la memoria) y qué script ejecutar durante la instalación. Los eggs oficiales cubren los juegos más populares, pero si corrés tu propio panel Pterodactyl y necesitás un tipo de servidor que no está en la lista, podés importar un egg propio en JSON — exactamente lo que arma la segunda pestaña de esta herramienta.
Preguntas frecuentes
¿Necesito saber Docker para usar esto?+
No para generarlo — elegís las opciones en el formulario y copiás el archivo resultante. Sí vas a necesitar tener Docker y el plugin Compose instalados en tu servidor (o VPS) para poder correr docker compose up -d con el archivo que generás acá.
¿Este egg funciona en cualquier panel de Pterodactyl?+
El JSON respeta el esquema real que usa Pterodactyl para exportar/importar eggs (meta, docker_images, config, scripts.installation, variables), así que debería importarse sin errores en cualquier panel Pterodactyl moderno vía Admin → Nests → Import Egg. Aun así, siempre revisá y ajustá el script de instalación (scripts.installation.script) antes de usarlo en producción — el que generamos es un punto de partida, no un instalador específico para cada juego.
¿Qué pasa si mi juego o app no está en la lista de presets?+
Usá el preset "Genérico" — te da un service con imagen, puertos, volúmenes y variables de entorno totalmente editables, sin nada específico de un juego en particular. Es el punto de partida para cualquier imagen Docker que ya exista.
¿Los volúmenes con nombre pierden mis datos si borro el contenedor?+
No. Un volumen con nombre (named volume) vive fuera del ciclo de vida del contenedor — podés borrar y recrear el contenedor (docker compose down seguido de up) las veces que quieras y los datos siguen intactos. Solo se pierden si borrás el volumen explícitamente (docker volume rm) o corrés docker compose down -v. Un bind mount, en cambio, apunta directamente a una carpeta de tu servidor host, así que los datos viven ahí sin importar qué le pase al contenedor.
¿Necesitás un VPS para correr Docker?
VPS con NVMe real e IP dedicada, ideal para levantar tus stacks de Docker Compose o tu propio panel de Pterodactyl.
Ver planes