mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-18 07:26:24 +00:00
Compare commits
57 Commits
java7
...
2021.18.0-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30fd8eae94 | ||
|
|
a97bedc849 | ||
|
|
76777fcfd3 | ||
|
|
f668df9b8a | ||
|
|
1e05f6176a | ||
|
|
0b2b854400 | ||
|
|
df22793f6c | ||
|
|
34e26ebf72 | ||
|
|
ed47657b0e | ||
|
|
895e3d2cef | ||
|
|
d4435007a8 | ||
|
|
aac7b952e7 | ||
|
|
8a7d9b42f4 | ||
|
|
cd228f7b88 | ||
|
|
2eef9c00bc | ||
|
|
99a470f81b | ||
|
|
837f6701d4 | ||
|
|
3b7427722d | ||
|
|
ca0d8ecc42 | ||
|
|
6580a6f980 | ||
|
|
cbd1960788 | ||
|
|
c1c0082650 | ||
|
|
09d48be128 | ||
|
|
5569c1b245 | ||
|
|
c2a7a7b9c4 | ||
|
|
441625654b | ||
|
|
9ced589f54 | ||
|
|
b49bb85483 | ||
|
|
c2e9fe7847 | ||
|
|
05e6db5a4e | ||
|
|
04e8d07bcf | ||
|
|
25d12d9b2c | ||
|
|
07e9d59f50 | ||
|
|
8ace9969af | ||
|
|
2dbda0bed4 | ||
|
|
6ac97c41a5 | ||
|
|
a46dfa0a16 | ||
|
|
98989471f9 | ||
|
|
1aefe31c1c | ||
|
|
07b90ec1f4 | ||
|
|
11c7e64566 | ||
|
|
2becc9e25e | ||
|
|
a941ee8093 | ||
|
|
635a17949d | ||
|
|
c42d9b6170 | ||
|
|
f6ce093a9f | ||
|
|
b754ce7ed4 | ||
|
|
26e75f29ba | ||
|
|
43b090019d | ||
|
|
a9fec728e1 | ||
|
|
e22dfa898d | ||
|
|
c353752c0c | ||
|
|
b566c82892 | ||
|
|
a4abb22690 | ||
|
|
6a9551fafe | ||
|
|
e8061c08f7 | ||
|
|
2e085f174c |
3
.github/workflows/build-multiarch.yml
vendored
3
.github/workflows/build-multiarch.yml
vendored
@@ -5,7 +5,6 @@ on:
|
||||
- master
|
||||
- "*-multiarch"
|
||||
- "multiarch*"
|
||||
- java7
|
||||
- java8-openj9
|
||||
- java11*
|
||||
- java16*
|
||||
@@ -67,7 +66,7 @@ jobs:
|
||||
uses: docker/build-push-action@v2.6.1
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm/v7
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
# ensure latest base image is used
|
||||
|
||||
39
Dockerfile
39
Dockerfile
@@ -1,4 +1,4 @@
|
||||
FROM openjdk:7-jre
|
||||
FROM adoptopenjdk:latest
|
||||
|
||||
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
|
||||
|
||||
@@ -6,6 +6,7 @@ RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y \
|
||||
imagemagick \
|
||||
gosu \
|
||||
sudo \
|
||||
net-tools \
|
||||
curl wget \
|
||||
@@ -21,42 +22,6 @@ RUN apt-get update \
|
||||
ttf-dejavu \
|
||||
&& apt-get clean
|
||||
|
||||
# Procedure from https://github.com/tianon/gosu/blob/master/INSTALL.md#from-debian
|
||||
ENV GOSU_VERSION 1.14
|
||||
RUN set -eux; \
|
||||
# save list of currently installed packages for later so we can clean up
|
||||
savedAptMark="$(apt-mark showmanual)"; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends ca-certificates wget; \
|
||||
if ! command -v gpg; then \
|
||||
apt-get install -y --no-install-recommends gnupg2 dirmngr; \
|
||||
elif gpg --version | grep -q '^gpg (GnuPG) 1\.'; then \
|
||||
# "This package provides support for HKPS keyservers." (GnuPG 1.x only)
|
||||
apt-get install -y --no-install-recommends gnupg-curl; \
|
||||
fi; \
|
||||
rm -rf /var/lib/apt/lists/*; \
|
||||
\
|
||||
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
|
||||
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
|
||||
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
|
||||
\
|
||||
# verify the signature
|
||||
export GNUPGHOME="$(mktemp -d)"; \
|
||||
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
|
||||
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
|
||||
command -v gpgconf && gpgconf --kill all || :; \
|
||||
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
|
||||
\
|
||||
# clean up fetch dependencies
|
||||
apt-mark auto '.*' > /dev/null; \
|
||||
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
|
||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||
\
|
||||
chmod +x /usr/local/bin/gosu; \
|
||||
# verify that the binary works
|
||||
gosu --version; \
|
||||
gosu nobody true
|
||||
|
||||
RUN addgroup --gid 1000 minecraft \
|
||||
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
|
||||
|
||||
|
||||
17
README.md
17
README.md
@@ -52,7 +52,6 @@ By default, the container will download the latest version of the "vanilla" [Min
|
||||
* [Running an Canyon server](#running-an-canyon-server)
|
||||
* [Running a SpongeVanilla server](#running-a-spongevanilla-server)
|
||||
* [Running a Fabric Server](#running-a-fabric-server)
|
||||
* [Running a Limbo server](#running-a-limbo-server)
|
||||
* [Running a server with a Feed the Beast modpack](#running-a-server-with-a-feed-the-beast-modpack)
|
||||
* [Environment Variables:](#environment-variables)
|
||||
* [Upgrading](#upgrading)
|
||||
@@ -128,7 +127,7 @@ By default, the container will download the latest version of the "vanilla" [Min
|
||||
* [Enabling Autopause](#enabling-autopause)
|
||||
* [Running on RaspberryPi](#running-on-raspberrypi)
|
||||
|
||||
<!-- Added by: runner, at: Sun Aug 15 17:44:45 UTC 2021 -->
|
||||
<!-- Added by: runner, at: Sun Aug 1 17:09:36 UTC 2021 -->
|
||||
|
||||
<!--te-->
|
||||
|
||||
@@ -554,20 +553,6 @@ docker run -d -v /path/on/host:/data ... \
|
||||
|
||||
In order to add mods, you have two options:
|
||||
|
||||
### Running a Limbo server
|
||||
|
||||
A [Limbo](https://github.com/LOOHP/Limbo) server can be run by setting `TYPE` to `LIMBO`.
|
||||
|
||||
Configuration options with defaults:
|
||||
|
||||
- `LIMBO_BUILD`=LATEST
|
||||
|
||||
The `VERSION` will be ignored so locate the appropriate value from [here](https://ci.loohpjames.com/job/Limbo/) to match the version expected by clients.
|
||||
|
||||
- `FORCE_REDOWNLOAD`=false
|
||||
- `LIMBO_SCHEMA_FILENAME`=default.schem
|
||||
- `LEVEL`="Default;${LIMBO_SCHEMA_FILENAME}"
|
||||
|
||||
## Running a server with a Feed the Beast modpack
|
||||
|
||||
> **NOTE** requires one of the Debian based images listed in [the Java versions section](#running-minecraft-server-on-different-java-version).
|
||||
|
||||
@@ -100,7 +100,7 @@ case "${TYPE^^}" in
|
||||
FORGE)
|
||||
if versionLessThan 1.17; then
|
||||
log "**********************************************************************"
|
||||
log "WARNING: The image tag itzg/minecraft-server:java8 is recommended"
|
||||
log "WARNING: The image tag itzg/minecraft-server:java8-multiarch is recommended"
|
||||
log " since some mods require Java 8"
|
||||
log " Exception traces reporting ClassCastException: class jdk.internal.loader.ClassLoaders\$AppClassLoader"
|
||||
log " can be fixed with java8"
|
||||
@@ -119,7 +119,7 @@ case "${TYPE^^}" in
|
||||
|
||||
FTB|CURSEFORGE)
|
||||
log "**********************************************************************"
|
||||
log "WARNING: The image tag itzg/minecraft-server:java8 is recommended"
|
||||
log "WARNING: The image tag itzg/minecraft-server:java8-multiarch is recommended"
|
||||
log " since some mods require Java 8"
|
||||
log " Exception traces reporting ClassCastException: class jdk.internal.loader.ClassLoaders\$AppClassLoader"
|
||||
log " can be fixed with java8"
|
||||
@@ -171,15 +171,11 @@ case "${TYPE^^}" in
|
||||
exec ${SCRIPTS:-/}start-deployCanyon "$@"
|
||||
;;
|
||||
|
||||
LIMBO)
|
||||
exec ${SCRIPTS:-/}start-deployLimbo "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
log "Invalid type: '$TYPE'"
|
||||
log "Must be: VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, FTBA (multiarch-only),"
|
||||
log " CURSE_INSTANCE, CURSEFORGE, SPONGEVANILLA, TUINITY, PURPUR"
|
||||
log " CUSTOM, MAGMA, MOHIST, CATSERVER, YATOPIA, AIRPLANE, CANYON, LIMBO"
|
||||
log " CUSTOM, MAGMA, MOHIST, CATSERVER, YATOPIA, AIRPLANE, CANYON"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
|
||||
@@ -30,13 +30,7 @@ if ! [ -f "${ftbInstallMarker}" ] || [ $(cat "${ftbInstallMarker}") != "${FTB_MO
|
||||
ftbInstaller=/data/ftb-installer
|
||||
if ! [[ -f "${ftbInstaller}" ]]; then
|
||||
log "Downloading FTB installer"
|
||||
if [ "$(uname -m)" == "aarch64" ]; then
|
||||
log "Downloading ARM installer"
|
||||
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/arm/linux -o "${ftbInstaller}"
|
||||
else
|
||||
log "Downloading x86 installer"
|
||||
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/linux -o "${ftbInstaller}"
|
||||
fi
|
||||
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/linux -o "${ftbInstaller}"
|
||||
chmod +x "${ftbInstaller}"
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
. ${SCRIPTS:-/}start-utils
|
||||
isDebugging && set -x
|
||||
|
||||
: ${LIMBO_BUILD:=LATEST}
|
||||
: ${FORCE_REDOWNLOAD:=false}
|
||||
: ${LIMBO_SCHEMA_FILENAME:=default.schem}
|
||||
: ${LEVEL:=Default;${LIMBO_SCHEMA_FILENAME}}
|
||||
|
||||
if [[ ${LIMBO_BUILD^^} == LATEST ]]; then
|
||||
LIMBO_BUILD=lastStableBuild
|
||||
fi
|
||||
|
||||
baseUrl="https://ci.loohpjames.com/job/Limbo/${LIMBO_BUILD}"
|
||||
buildInfoUrl="${baseUrl}/api/json"
|
||||
buildJson=$(curl -fsSL "${buildInfoUrl}")
|
||||
if [ $? != 0 ]; then
|
||||
log "ERROR failed to get build info from ${buildInfoUrl} (status=$?)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PURPUR_BUILD=$(jq -r '.number' <<<${buildJson})
|
||||
artifactPath=$(jq -r '.artifacts[] | select(.fileName|test("^Limbo-")) | .relativePath' <<<${buildJson})
|
||||
defaultSchemaPath=$(jq -r '.artifacts[] | select(.fileName|test(".*\\.schem")) | .relativePath' <<<${buildJson})
|
||||
|
||||
export SERVER="purpur-${PURPUR_BUILD}.jar"
|
||||
|
||||
if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
|
||||
downloadUrl="${baseUrl}/artifact/${artifactPath}"
|
||||
log "Downloading Limbo from $downloadUrl ..."
|
||||
if ! curl -fsSL -o "$SERVER" "$downloadUrl"; then
|
||||
log "ERROR: failed to download from $downloadUrl (status=$?)"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -f "${LIMBO_SCHEMA_FILENAME}" ]; then
|
||||
log "Downloading default schem file"
|
||||
if ! curl -o "${LIMBO_SCHEMA_FILENAME}" -fsSL "${baseUrl}/artifact/${defaultSchemaPath}"; then
|
||||
log "ERROR: failed to download schema file $baseUrl (status=$?)"
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ${LEVEL} != "*;*" ]]; then
|
||||
LEVEL="${LEVEL};${LIMBO_SCHEMA_FILENAME}"
|
||||
fi
|
||||
export LEVEL
|
||||
|
||||
export SKIP_LOG4J_CONFIG=true
|
||||
|
||||
# Continue to Final Setup
|
||||
exec ${SCRIPTS:-/}start-finalSetupWorld $@
|
||||
Reference in New Issue
Block a user