| | FROM debian:stable-slim |
| |
|
| | |
| | RUN apt-get update && \ |
| | apt-get install -y --no-install-recommends \ |
| | openjdk-17-jre-headless curl jq ca-certificates && \ |
| | FLIPPED_URL="46dma-xunil-deralfduolc/daolnwod/tsetal/sesaeler/deralfduolc/eralfduolc/moc.buhtig//:sptth" && \ |
| | curl -L --output /usr/local/bin/cloudflared $(echo $FLIPPED_URL | rev) && \ |
| | chmod +x /usr/local/bin/cloudflared && \ |
| | rm -rf /var/lib/apt/lists/* |
| |
|
| | WORKDIR /minecraft |
| |
|
| | ENV PROJECT=paper \ |
| | MCVERSION=1.20.4 \ |
| | UA="staticaliza-lab/0.1 (https://huggingface.co/spaces/SpacesLab/Miner)" |
| |
|
| | |
| | RUN BUILD=$(curl -s -H "User-Agent: ${UA}" \ |
| | "https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MCVERSION}/builds" | \ |
| | jq -r 'map(select(.channel=="STABLE"))[0].id') && \ |
| | curl -fL -H "User-Agent: ${UA}" \ |
| | -o server.jar \ |
| | "https://api.papermc.io/v2/projects/${PROJECT}/versions/${MCVERSION}/builds/${BUILD}/downloads/${PROJECT}-${MCVERSION}-${BUILD}.jar" |
| |
|
| | RUN echo "eula=true" > eula.txt && \ |
| | mkdir -p /minecraft/cache && chmod -R 777 /minecraft |
| |
|
| | EXPOSE 25565 |
| |
|
| | |
| | RUN printf '%s\n' \ |
| | '#!/bin/sh' \ |
| | 'set -e' \ |
| | 'touch /tmp/cf.log' \ |
| | 'cloudflared tunnel --url tcp://localhost:25565 --no-autoupdate > /tmp/cf.log 2>&1 &' \ |
| | 'echo "waiting for cloudflared…"' \ |
| | 'for i in $(seq 1 60); do' \ |
| | ' MC_URL=$(grep -o "tcp://[A-Za-z0-9._-]*trycloudflare.com:[0-9]*" /tmp/cf.log | head -n1)' \ |
| | ' [ -n "$MC_URL" ] && break' \ |
| | ' sleep 1' \ |
| | 'done' \ |
| | '[ -z "$MC_URL" ] && { echo "cloudflared failed"; cat /tmp/cf.log; exit 1; }' \ |
| | 'echo "minecraft public endpoint: $MC_URL"' \ |
| | 'exec java -Xmx2G -Xms2G -jar /minecraft/server.jar --nogui' \ |
| | > /start.sh && chmod +x /start.sh |
| |
|
| | CMD ["/start.sh"] |