Loader version option
All checks were successful
Docker Build and Push / build (push) Successful in 2m25s

This commit is contained in:
Jeremy McClure 2025-06-18 07:52:11 -04:00
parent 744bd61ee6
commit b0c1b07499
Signed by: jeremy
GPG Key ID: CA27BD8443157067
2 changed files with 81 additions and 23 deletions

View File

@ -5,12 +5,19 @@ services:
stdin_open: true
tty: true
environment:
- MC_LOADER=paper # paper, fabric or forge
- MC_VERSION=1.21.4
- MC_VERSION=1.20.1
- MC_LOADER=fabric # paper, fabric or forge
- MC_LOADER_VERSION=0.16.14 # build number or blank for latest
- JAVA_VERSION=temurin@21
- JAR=server.jar
- MEMORY=2G
- MEMORY=4G
- ADD_ARGS=
- PUID=1000
- PGID=1000
build:
dockerfile: Dockerfile
context: .
@ -21,5 +28,5 @@ services:
deploy:
resources:
limits:
memory: 2G
memory: 4G
restart: unless-stopped

View File

@ -1,11 +1,16 @@
#!/bin/env bash
MC_VERSION=${MC_VERSION}
MC_LOADER=${MC_LOADER=}
MC_LOADER_VERSION=${MC_LOADER_VERSION}
JAVA_VERSION=${JAVA_VERSION:-"temurin@21"}
JAVA_HOME=/data/java/${JAVA_VERSION}
JAR=${JAR:-"server.jar"}
JAR=server.jar
ADD_ARGS=${ADD_ARGS:-""}
MEM=${MEMORY:-2G}
ADD_ARGS=${ADD_ARGS:-""}
PUID="${PUID:-1000}"
PGID="${PGID:-1000}"
@ -36,8 +41,10 @@ crash() {
# Set Eula
setEula() {
echo "#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA)." >eula.txt
echo "eula=true" >>eula.txt
cat <<EOF > eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
eula=true
EOF
}
# Check for Java, and install if neccesary
@ -66,6 +73,7 @@ javaCheck() {
# Paper Server
getPaper() {
SERVER_TYPE="Paper Minecraft"
if [[ ! -f server.jar ]]; then
LATEST_BUILD=$(curl -s https://api.papermc.io/v2/projects/${MC_LOADER}/versions/${MC_VERSION}/builds |
jq -r '.builds | map(select(.channel == "default") | .build) | .[-1]')
@ -81,6 +89,7 @@ getPaper() {
else
echo "No stable build for version $MC_VERSION found :("
fi
fi
}
# Fabric Server
@ -88,7 +97,20 @@ getFabric() {
SERVER_TYPE="Fabric Minecraft"
LATEST_BUILD=$(curl -s https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION} | jq -s '.[] .[0] .loader .version' | tr -d '"')
LATEST_INSTALLER=$(curl -s https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml | xmllint --xpath "/metadata/versioning/latest/text()" -)
if [ "$MC_VERSION" != "null" ]; then
VER=$MC_VERSION
else
echo "Minecraft version not set"
exit 1
fi
if [ "$MC_LOADER_VERSION" == "null" ]; then
DL_URL=https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}/${LATEST_BUILD}/${LATEST_INSTALLER}/server/jar
else
DL_URL=https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}/${MC_LOADER_VERSION}/${LATEST_INSTALLER}/server/jar
fi
if [ "$LATEST_BUILD" != "null" ]; then
echo "$DL_URL"
curl -o server.jar ${DL_URL}
@ -165,23 +187,52 @@ buildCommand
setEula
serverInfoWrite() {
cat <<EOF > server.info
MC_VERSION=$MC_VERSION
MC_LOADER=$MC_LOADER
MC_LOADER_VERSION=$MC_LOADER_VERSION
JAVA_VERSION=$JAVA_VERSION
JAR=$JAR
MEMORY=$MEM
ADD_ARGS=$ADD_ARGS
PUID=$PUID
PGID=$PGID
EOF
}
## ----------------- SEND IT ----------------- ##
while true; do
cd /data/server
if [[ ! -f "server.properties" ]]; then touch "server.properties"; fi
if [[ -f $JAR ]]; then
echo -e "|_______________________________________________________|"
echo -e "|##----------------- Server Starting -----------------##|"
echo -e "|#| Server Type: $SERVER_TYPE"
echo -e "|#| Minecraft Version: $MC_VERSION"
echo -e "|#| "
echo -e "|#| Loader Type: ${SERVER_TYPE:-$MC_LOADER}"
echo -e "|#| Loader Version: $MC_LOADER_VERSION"
echo -e "|#| "
echo -e "|#| Java Version: $JAVA_VERSION"
echo -e "|#| Additional Arg: $ADD_ARGS"
echo -e "|#| Jar: $JAR"
echo -e "|#| Memory Allocated: $MEM"
echo -e "|#| Additional Args: $ADD_ARGS"
echo -e "|#| "
echo -e "|#| Running as:"
echo -e "|#| User: $PUID"
echo -e "|#| Group: $PGID"
echo -e "|#| "
echo -e "|#| Run Command:"
echo -e "|#| java $RUN_STRING"
echo -e "|##---------------------------------------------------##|"
echo -e "|-------------------------------------------------------|"
echo -e " "
serverInfoWrite
exec java $RUN_STRING
else
echo "Server Not Found."