feat: ✨ Add memory limit calculations & server setup/updates
This commit is contained in:
parent
dafb86397d
commit
b6b72ede02
9
.dockerignore
Normal file
9
.dockerignore
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
.gitignore
|
||||||
|
.dockerignore
|
||||||
|
Dockerfile
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
|
.vscode
|
||||||
|
.git
|
||||||
|
.history/
|
||||||
|
*.vsix
|
12
Dockerfile
Normal file
12
Dockerfile
Normal file
@ -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" ]
|
30
entrypoint.sh
Executable file
30
entrypoint.sh
Executable file
@ -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<MEMSIZE ? MEMLIMIT : MEMSIZE))
|
||||||
|
MEMOFFSET=1073741824
|
||||||
|
SERVER_MEM=$((MEMLIMIT-MEMOFFSET))
|
||||||
|
|
||||||
|
if [ -e "/server/modpack.json" ]; then
|
||||||
|
mrpack-install --server-dir /server --server-file server.jar update "$@" <<EOF
|
||||||
|
y
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
mrpack-install --server-dir /server --server-file server.jar "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /server
|
||||||
|
echo "eula=true" > /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
|
Loading…
x
Reference in New Issue
Block a user