๐ณ Multi-architecture Docker images for Minecraft servers with Forge and Arclight support
- ๐๏ธ Multi-platform support: AMD64 & ARM64
- โก Optimized performance with built-in caching
- ๐ง Multiple Minecraft versions (Forge + Arclight)
- ๐ Automatic builds via GitHub Actions
- ๐ฆ Published to GitHub Container Registry
- ๐ก๏ธ Production-ready configurations
- ๐ฏ Resource packs & Data packs: Built-in support for Minecraft resource packs, data packs, and mod-specific packs (Flan's Mod & TaCZ)
Version | Type | Java | Minecraft | Forge | Arclight |
---|---|---|---|---|---|
1.12.2-forge-14.23.5.2860 |
Forge | 8 | 1.12.2 | 14.23.5.2860 | - |
1.18.2-arclight-1.0.12-forge-40.2.14 |
Arclight | 17 | 1.18.2 | 40.2.14 | 1.0.12 |
1.19.2-arclight-1.0.6-forge-43.4.4 |
Arclight | 17 | 1.19.2 | 43.4.4 | 1.0.6 |
1.19.4-arclight-1.0.8-forge-45.2.6 |
Arclight | 17 | 1.19.4 | 45.2.6 | 1.0.8 |
# Create server directory
mkdir ~/my-minecraft-server && cd ~/my-minecraft-server
# Create required directories
mkdir -p worlds dynmap mods logs plugins config config-server Flan tacz resourcepacks datapacks
# Set permissions (Linux/macOS)
chown -R 1000:1000 .
docker run -d \
--name minecraft-server \
--restart unless-stopped \
-e JVM_MEMORY_MAX=4096M \
-p 25565:25565 \
-v ${PWD}/worlds:/opt/craftorio/worlds \
-v ${PWD}/mods:/opt/craftorio/mods \
-v ${PWD}/logs:/opt/craftorio/logs \
-v ${PWD}/plugins:/opt/craftorio/plugins \
-v ${PWD}/config:/opt/craftorio/config \
-v ${PWD}/config-server:/opt/craftorio/config-server \
-v ${PWD}/Flan:/opt/craftorio/Flan \
-v ${PWD}/tacz:/opt/craftorio/tacz \
-v ${PWD}/resourcepacks:/opt/craftorio/resourcepacks \
-v ${PWD}/datapacks:/opt/craftorio/datapacks \
ghcr.io/craftorio/docker-server-minecraft:1.19.4-arclight-1.0.8-forge-45.2.6
# View logs
docker logs -f minecraft-server
# Connect to Minecraft console (recommended)
docker exec -it minecraft-server screen -r
# Access server bash shell
docker exec -it minecraft-server bash
# Stop server
docker stop minecraft-server
๐ก Tip: Use
docker exec -it minecraft-server screen -r
to connect directly to the Minecraft server console where you can run server commands like/op
,/whitelist
,/say
, etc. PressCtrl+A
thenCtrl+D
to detach from console without stopping the server.
Place your custom resource packs in the resourcepacks/
folder to:
- Change textures, sounds, and models
- Customize UI elements and fonts
- Add custom music and sound effects
Place your data packs in the datapacks/
folder to:
- Add custom recipes and loot tables
- Create custom dimensions and biomes
- Implement custom game mechanics
- Add new structures and features
- Flan/: Resource packs for Flan's Mod vehicles and weapons
- tacz/: Resource packs for TaCZ (Timeless and Classics Zero) mod
๐ก Tip: Resource packs are applied client-side, while data packs affect server-side gameplay. Both are automatically loaded when placed in their respective folders.
Variable | Default | Description |
---|---|---|
JVM_MEMORY_MAX |
2048M |
Maximum JVM heap size |
JVM_MEMORY_MIN |
1024M |
Minimum JVM heap size |
MC_AUTH_SERVER |
auth.craftorio.com |
Authentication server |
MC_AUTH_SESSION_SERVER |
sessionserver.craftorio.com |
Session server |
Create docker-compose.yml
:
version: '3.8'
services:
minecraft:
image: ghcr.io/craftorio/docker-server-minecraft:1.19.4-arclight-1.0.8-forge-45.2.6
container_name: minecraft-server
restart: unless-stopped
ports:
- "25565:25565"
environment:
- JVM_MEMORY_MAX=4096M
- JVM_MEMORY_MIN=2048M
volumes:
- ./worlds:/opt/craftorio/worlds
- ./mods:/opt/craftorio/mods
- ./logs:/opt/craftorio/logs
- ./plugins:/opt/craftorio/plugins
- ./config:/opt/craftorio/config
- ./config-server:/opt/craftorio/config-server
- ./Flan:/opt/craftorio/Flan
- ./tacz:/opt/craftorio/tacz
- ./resourcepacks:/opt/craftorio/resourcepacks
- ./datapacks:/opt/craftorio/datapacks
stdin_open: true
tty: true
Run with:
docker-compose up -d
- Docker with Buildx support
- Multi-platform build capability
./build.sh 1.19.4-arclight-1.0.8-forge-45.2.6
./build.sh
PUSH=1 ./build.sh
- Check memory allocation:
docker logs minecraft-server
- Verify port availability:
netstat -tulpn | grep 25565
- Ensure proper file permissions
- Increase memory:
-e JVM_MEMORY_MAX=8192M
- Use SSD storage for volumes
- Monitor with:
docker stats minecraft-server
- Check firewall settings
- Verify port mapping:
-p 25565:25565
- Test with:
telnet localhost 25565
๐ Server Directory/
โโโ ๐ worlds/ # World saves
โโโ ๐บ๏ธ dynmap/ # Dynmap web files
โโโ ๐ฆ mods/ # Forge mods
โโโ ๐ logs/ # Server logs
โโโ ๐ plugins/ # Bukkit/Spigot plugins
โโโ โ๏ธ config/ # Configuration files
โโโ ๐ง config-server/ # Server-specific configs
โโโ ๐ฏ Flan/ # Flan's Mod resource packs
โโโ ๐ซ tacz/ # TaCZ mod resource packs
โโโ ๐จ resourcepacks/ # Minecraft resource packs
โโโ ๐ datapacks/ # Minecraft data packs
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- ๐ฆ GitHub Container Registry
- ๐ง Issues & Support
- ๐ Documentation
Made with โค๏ธ by Craftorio
Happy Mining! โ๏ธ