diff --git a/docker/Dockerfile.amd64 b/docker/Dockerfile.amd64 index d5b6282..282d2f9 100644 --- a/docker/Dockerfile.amd64 +++ b/docker/Dockerfile.amd64 @@ -1,7 +1,10 @@ -FROM ghcr.io/dockhippie/minecraft-forge:47.2-amd64 +FROM ghcr.io/dockhippie/minecraft-vanilla:1.20.1-arm64 AS build EXPOSE 25565 25575 8123 +ENV FORGE_VERSION 47.1.84 +ENV FORGE_URL https://maven.minecraftforge.net/net/minecraftforge/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar + ENV DYNMAP_JAR Dynmap-3.7-beta-4-forge-1.20.jar ENV DYNMAP_URL https://mediafilez.forgecdn.net/files/4979/24/${DYNMAP_JAR} @@ -9,6 +12,11 @@ RUN apt-get update && \ apt-get upgrade -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ + curl --create-dirs -sLo /usr/share/minecraft/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar ${FORGE_URL} && \ + cd /usr/share/minecraft && \ + mkdir mods && \ + java -jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar --installServer && \ + rm -f forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar.log run.bat run.sh && \ curl --create-dirs -sLo /usr/share/minecraft/mods/${DYNMAP_JAR} ${DYNMAP_URL} ENV MINECRAFT_LEVEL_TYPE DEFAULT diff --git a/docker/Dockerfile.arm64 b/docker/Dockerfile.arm64 index 295cb04..fa6db11 100644 --- a/docker/Dockerfile.arm64 +++ b/docker/Dockerfile.arm64 @@ -1,7 +1,10 @@ -FROM ghcr.io/dockhippie/minecraft-forge:47.2-arm64 +FROM ghcr.io/dockhippie/minecraft-vanilla:1.20.1-amd64 AS build EXPOSE 25565 25575 8123 +ENV FORGE_VERSION 47.1.84 +ENV FORGE_URL https://maven.minecraftforge.net/net/minecraftforge/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar + ENV DYNMAP_JAR Dynmap-3.7-beta-4-forge-1.20.jar ENV DYNMAP_URL https://mediafilez.forgecdn.net/files/4979/24/${DYNMAP_JAR} @@ -9,6 +12,11 @@ RUN apt-get update && \ apt-get upgrade -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ + curl --create-dirs -sLo /usr/share/minecraft/forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar ${FORGE_URL} && \ + cd /usr/share/minecraft && \ + mkdir mods && \ + java -jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar --installServer && \ + rm -f forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar forge-${MINECRAFT_VERSION}-${FORGE_VERSION}-installer.jar.log run.bat run.sh && \ curl --create-dirs -sLo /usr/share/minecraft/mods/${DYNMAP_JAR} ${DYNMAP_URL} ENV MINECRAFT_LEVEL_TYPE DEFAULT diff --git a/overlay/etc/container.d/25-mods.sh b/overlay/etc/container.d/25-mods.sh new file mode 100755 index 0000000..0ac1706 --- /dev/null +++ b/overlay/etc/container.d/25-mods.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +if [ ! -d ${MINECRAFT_MODS_DIR} ]; then + echo "> creating mods dir" + mkdir -p ${MINECRAFT_MODS_DIR} +fi diff --git a/overlay/etc/container.d/25-pack.sh b/overlay/etc/container.d/30-pack.sh similarity index 100% rename from overlay/etc/container.d/25-pack.sh rename to overlay/etc/container.d/30-pack.sh diff --git a/overlay/etc/entrypoint.d/20-forge.sh b/overlay/etc/entrypoint.d/20-forge.sh new file mode 100755 index 0000000..7c18ee9 --- /dev/null +++ b/overlay/etc/entrypoint.d/20-forge.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +declare -x MINECRAFT_MODS_DIR +[[ -z "${MINECRAFT_MODS_DIR}" ]] && MINECRAFT_MODS_DIR="${MINECRAFT_GAME_DIR}/mods" + +true diff --git a/overlay/etc/entrypoint.d/20-pack.sh b/overlay/etc/entrypoint.d/30-pack.sh similarity index 100% rename from overlay/etc/entrypoint.d/20-pack.sh rename to overlay/etc/entrypoint.d/30-pack.sh diff --git a/overlay/usr/bin/container b/overlay/usr/bin/container new file mode 100755 index 0000000..05ee7d3 --- /dev/null +++ b/overlay/usr/bin/container @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eo pipefail +source /usr/bin/entrypoint + +for FILE in $(find /etc/container.d -type f -iname \*.sh | sort); do + source ${FILE} +done + +pushd ${MINECRAFT_GAME_DIR} >/dev/null + STARTCMD="su-exec minecraft java" + + if [ -n "${MINECRAFT_MAXHEAP}" ]; then + STARTCMD="${STARTCMD} -Xmx${MINECRAFT_MAXHEAP}" + fi + + if [ -n "${MINECRAFT_MINHEAP}" ]; then + STARTCMD="${STARTCMD} -Xms${MINECRAFT_MINHEAP}" + fi + + echo "> starting minecraft server" + exec ${STARTCMD} ${JAVA_OPTS} @libraries/net/minecraftforge/forge/${MINECRAFT_VERSION}-${FORGE_VERSION}/unix_args.txt ${MINECRAFT_OPTS} +popd >/dev/null