FROM docker.io/eclipse-temurin:25-jre-alpine EXPOSE 25565 ENV MINECRAFT_VERSION=26.2 VOLUME /mnt WORKDIR /data RUN apk add --no-cache curl jq RUN curl -s "https://fill.papermc.io/v3/projects/paper/versions/$MINECRAFT_VERSION/builds/latest" \ | jq -r '.downloads."server:default".url' \ | xargs curl -o server.jar RUN mkdir -p /data/plugins RUN wget -P /data/plugins \ https://download.luckperms.net/1652/bukkit/loader/LuckPerms-Bukkit-5.5.65.jar \ https://hangarcdn.papermc.io/plugins/ViaVersion/ViaVersion/versions/5.11.0/PAPER/ViaVersion-5.11.0.jar \ https://hangarcdn.papermc.io/plugins/ViaVersion/ViaBackwards/versions/5.11.0/PAPER/ViaBackwards-5.11.0.jar COPY ./plugins/LuckPerms /data/plugins COPY --chmod=755 entrypoint.sh /entrypoint.sh COPY ./server.properties /data RUN mkdir -p /data/config COPY ./paper-global.yml /data/config COPY ./ops.json /data RUN printf eula=true > eula.txt RUN java -Xms3072M -Xmx3072M --add-modules=jdk.incubator.vector -XX:+UseG1GC \ -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \ -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \ -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \ -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \ -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \ -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \ -Dusing.aikars.flags=https://mcflags.emc.gs \-Daikars.new.flags=true \ -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \ -XX:G1ReservePercent=20 -jar server.jar --nogui --initSettings ENTRYPOINT ["/entrypoint.sh"] CMD ["java", "-Xms3072M", "-Xmx3072M", "--add-modules=jdk.incubator.vector", \ "-XX:+UseG1GC", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=200", \ "-XX:+UnlockExperimentalVMOptions", "-XX:+DisableExplicitGC", \ "-XX:+AlwaysPreTouch", "-XX:G1HeapWastePercent=5", "-XX:G1MixedGCCountTarget=4", \ "-XX:InitiatingHeapOccupancyPercent=15", "-XX:G1MixedGCLiveThresholdPercent=90", \ "-XX:G1RSetUpdatingPauseTimePercent=5", "-XX:SurvivorRatio=32", \ "-XX:+PerfDisableSharedMem", "-XX:MaxTenuringThreshold=1", \ "-Dusing.aikars.flags=https://mcflags.emc.gs", "-Daikars.new.flags=true", \ "-XX:G1NewSizePercent=30", "-XX:G1MaxNewSizePercent=40", \ "-XX:G1HeapRegionSize=8M", "-XX:G1ReservePercent=20", \ "-jar", "server.jar", "--nogui"]