| |
| |
| |
|
|
| FROM eclipse-temurin:21-jre-headless |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| python3 python3-pip python3-venv curl wget unzip ca-certificates \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN pip3 install --break-system-packages gradio requests psutil |
|
|
| WORKDIR /app |
|
|
| |
| RUN mkdir -p /app/mc-server && \ |
| cd /app/mc-server && \ |
| wget -q -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/216/downloads/paper-1.21.4-216.jar" || \ |
| wget -q -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/215/downloads/paper-1.21.4-215.jar" || \ |
| wget -q -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/214/downloads/paper-1.21.4-214.jar" || \ |
| echo "WARN: Paper download failed, will try again at runtime" |
|
|
| |
| RUN cd /tmp && \ |
| wget -q -O ngrok.zip "https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.zip" && \ |
| unzip -o ngrok.zip -d /usr/local/bin/ && \ |
| chmod +x /usr/local/bin/ngrok && \ |
| rm ngrok.zip |
|
|
| |
| RUN echo "eula=true" > /app/mc-server/eula.txt |
|
|
| |
| COPY mc-server/server.properties /app/mc-server/server.properties |
| COPY mc-server/paper-global.yml /app/mc-server/config/paper-global.yml |
| COPY mc-server/paper-world-defaults.yml /app/mc-server/config/paper-world-defaults.yml |
|
|
| |
| COPY app.py /app/app.py |
| COPY start.sh /app/start.sh |
| RUN chmod +x /app/start.sh |
|
|
| |
| RUN mkdir -p /app/mc-server/world /app/mc-server/logs /app/mc-server/plugins |
|
|
| ENV PORT=7860 |
| EXPOSE 7860 |
| EXPOSE 25565 |
|
|
| HEALTHCHECK --interval=30s --timeout=15s --start-period=180s --retries=5 \ |
| CMD curl -f http://localhost:7860/health || exit 1 |
|
|
| CMD ["bash", "/app/start.sh"] |
|
|