diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9251e60 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.gitignore +.dockerignore +Dockerfile +LICENSE +README.md +.vscode +.git +.history/ +*.vsix \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0ceb86c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM eclipse-temurin:22-alpine + +COPY --from=golang:1.22-alpine /usr/local/go/ /usr/local/go/ +ENV PATH="/root/go/bin:/usr/local/go/bin:${PATH}" + +RUN go install github.com/nothub/mrpack-install@v0.16.10 + +VOLUME /server + +COPY entrypoint.sh /entrypoint.sh + +ENTRYPOINT [ "/entrypoint.sh" ] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..b9816f0 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +MEMSIZE=$(grep MemTotal /proc/meminfo | awk '{print $2 * 1024}') +MEMLIMIT=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) +MEMLIMIT=$((MEMLIMIT /server/eula.txt +cat eula.txt +java -Xms$SERVER_MEM -Xmx$SERVER_MEM -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 -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 \ + -jar server.jar