minecraft / Dockerfile
rastof9's picture
Update Dockerfile
127b7c6 verified
# Step 1: Start from a clean Java 21 environment
FROM eclipse-temurin:21-jre-jammy
# Step 2: Set the working directory
WORKDIR /server
# Step 3: Install dependencies (wget for server, flask for web app) and clean up
RUN apt-get update && apt-get install -y wget python3-flask && rm -rf /var/lib/apt/lists/*
# Step 4: Download the Minecraft server
RUN wget https://piston-data.mojang.com/v1/objects/450698d1863ab5180c25d7c804ef0fe6369dd1ba/server.jar
# Step 5: Accept the Minecraft EULA
RUN echo "eula=true" > eula.txt
# Step 6: Copy the Flask app code into the container
COPY app.py .
# Step 7: Change ownership of the directory to the correct user
RUN chown -R 1000:1000 /server
# Step 8: Expose ports for Minecraft (25565) and the Flask web app (7860)
EXPOSE 25565
EXPOSE 7860
# Step 9: Start both servers.
# The Minecraft server runs in the background (&)
# The Flask app runs in the foreground, keeping the container alive.
CMD bash -c "java -Xms512M -Xmx1G -jar server.jar nogui & python3 app.py"