File size: 1,770 Bytes
b054e92
6d3ad88
b054e92
 
 
 
 
 
 
 
6d3ad88
 
 
b054e92
 
 
6d3ad88
b054e92
 
 
 
 
 
 
 
 
 
6d3ad88
 
 
81c7050
0bb597a
a1aada8
 
81c7050
 
a1aada8
81c7050
a1aada8
 
 
 
81c7050
a1aada8
 
 
0bb597a
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
FROM debian:stable-slim

# deps
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)"

# grab newest stable paper jar
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

# launcher
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"]