Coding kids. Start a Minecraft server. Including a cloudflare setup for secure multiple players.
120
Local minecraft server:
docker run --rm -e WORLD="myworld" -e GAME_MODE="creative" -e JVM_OPTS="-Xmx4096M -Xms4096M" -p 25565:25565 melias77/minecraft:openjdk21alpine-1
Minecraft Cloudflare docker-compose example assuming cloudflare account configuration has been configured. This allows players to play across internet in a safe manner:
Create a docker-compose.yml file with following content:
version: '3.9'
services:
cloudflaretunnel:
container_name: cloudflaretunnel
image: cloudflare/cloudflared:2023.10.0
restart: unless-stopped
environment:
- TUNNEL_TOKEN=$TUNNEL_TOKEN
command: tunnel --no-autoupdate run
networks:
- game-network
minecraft-server:
container_name: minecraft-server
image: melias77/minecraft:openjdk21apline-1
entrypoint: ['/bin/sh','-c']
command: |
"
#TODO: Download latest binary
sed -i 's/^gamemode=.*/gamemode=${GAME_MODE}/' server.properties
java ${JVM_OPTS} -jar server.jar nogui --universe data --world $WORLD
"
ports:
- 25565:25565
environment:
- WORLD=$WORLD
- GAME_MODE=$GAME_MODE
- "JVM_OPTS=-Xmx4096M -Xms4096M"
volumes:
- ${DATA}:/opt/app/data
networks:
- game-network
networks:
game-network:
Create a run.sh script containing following:
#https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes
sudo sysctl -w net.core.rmem_max=2500000
sudo sysctl -w net.core.wmem_max=2500000
export TUNNEL_TOKEN="<INSERT TOKEN>"
export DATA=${HOME}/minecraft/data
export WORLD="pepsi_faxekondi_world"
export GAME_MODE="survival"
export SEED="6630997395534342573"
export JVM_OPTS="-Xmx1024M -Xms1024M"
export UPGRADE=false
export MINECRF_DOWNLOAD="https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar"
docker compose up
Content type
Image
Digest
sha256:66554d642…
Size
286.3 MB
Last updated
over 1 year ago
docker pull melias77/minecraft:openjdk21alpine-1