Compare commits

..

38 Commits

Author SHA1 Message Date
Geoff Bourne
580b506ab7 Auto-merging via docker-versions-create 2021-02-10 14:03:36 -06:00
Geoff Bourne
c48f6c31ce Missing EULA failed without proper log message
#749
2021-02-10 13:57:14 -06:00
Geoff Bourne
b2d23edf6d ci: Added pull:true to multiarch build 2021-02-08 21:27:25 -06:00
Geoff Bourne
31f25cfd1b Added java8 recommendation to CURSEFORGE / FTB 2021-02-08 21:15:28 -06:00
Geoff Bourne
7d4e4c167e Added support for Yatopia
#704
2021-02-08 20:42:54 -06:00
Geoff Bourne
e0874a9241 Auto-merging via docker-versions-create 2021-02-07 18:19:31 -06:00
Geoff Bourne
b351205a05 Auto-merging via docker-versions-create 2021-02-07 09:13:41 -06:00
Geoff Bourne
526db33c8f Auto-merging via docker-versions-create 2021-01-29 21:05:07 -06:00
Geoff Bourne
3d7384f3e2 Auto-merging via docker-versions-create 2021-01-12 17:26:48 -06:00
Geoff Bourne
6e079c46c2 Auto-merging via docker-versions-create 2021-01-09 11:21:56 -06:00
Geoff Bourne
0d8d85876a Auto-merging via docker-versions-create 2021-01-06 22:03:50 -06:00
Geoff Bourne
e56c5a63f4 Auto-merging via docker-versions-create 2020-12-27 22:06:10 -06:00
Geoff Bourne
03dd3d03ac Auto-merging via docker-versions-create 2020-12-19 08:24:47 -06:00
Geoff Bourne
453230e5b4 Auto-merging via docker-versions-create 2020-12-15 13:59:58 -06:00
Geoff Bourne
4e0a1c8764 Auto-merging via docker-versions-create 2020-11-25 15:56:18 -06:00
Geoff Bourne
9affd5e446 Auto-merging via docker-versions-create 2020-08-09 13:07:09 -05:00
Geoff Bourne
fbca7982c5 Auto-merging via docker-versions-create 2020-07-26 08:29:57 -05:00
Geoff Bourne
ce6ce0adbc Auto-merging via docker-versions-create 2020-07-18 18:40:24 -05:00
Geoff Bourne
5e0e7999a9 Auto-merging via docker-versions-create 2020-07-11 13:13:26 -05:00
Geoff Bourne
34e661267d Auto-merging via docker-versions-create 2020-07-10 17:11:28 -05:00
Geoff Bourne
55a539860e Auto-merging via docker-versions-create 2020-07-04 14:57:53 -05:00
Geoff Bourne
26b5647ca2 Auto-merging via docker-versions-create 2020-06-20 15:44:49 -05:00
Geoff Bourne
bfdb5c075b Auto-merging via docker-versions-create 2020-06-19 13:26:45 -05:00
Geoff Bourne
bd4a184ad7 Auto-merging via docker-versions-create 2020-05-20 08:14:52 -05:00
Geoff Bourne
156786dacf Auto-merging via docker-versions-create 2020-05-02 09:34:17 -05:00
Geoff Bourne
92186c9c8e Auto-merging via docker-versions-create 2020-04-25 12:10:54 -05:00
Geoff Bourne
74ee8a621c Auto-merging via docker-versions-create 2020-04-17 21:28:57 -05:00
Geoff Bourne
64345b0d82 Auto-merging via docker-versions-create 2020-04-11 08:51:46 -05:00
Geoff Bourne
5b45c4ea4e Auto-merging via docker-versions-create 2020-04-10 11:08:53 -05:00
Geoff Bourne
a15e608421 Auto-merging via docker-versions-create 2020-04-03 13:31:40 -05:00
Geoff Bourne
f4561b7a3b Auto-merging via docker-versions-create 2020-04-03 13:28:52 -05:00
Geoff Bourne
c6f0042686 Auto-merging via docker-versions-create 2020-04-02 17:47:41 -05:00
Geoff Bourne
79aabf82ff Auto-merging via docker-versions-create 2020-03-30 08:32:02 -05:00
Geoff Bourne
89b60c7706 Auto-merging via docker-versions-create 2020-03-26 20:54:13 -05:00
Geoff Bourne
4b4cbdfce1 Auto-merging via docker-versions-create 2020-02-01 08:53:03 -06:00
Geoff Bourne
a424346d0c Auto-merging via docker-versions-create 2020-01-17 08:29:12 -06:00
Geoff Bourne
fad48505d7 Auto-merging via docker-versions-create 2019-11-16 09:31:01 -06:00
Geoff Bourne
a535fb7873 Add adoptopenjdk/openjdk11:alpine-jre variant 2019-11-16 09:09:55 -06:00
8 changed files with 70 additions and 53 deletions

View File

@@ -1,25 +0,0 @@
version: 2
jobs:
minecraft_server:
docker:
- image: circleci/buildpack-deps:stable
steps:
- checkout
- setup_remote_docker
- run:
name: Build image
command: docker build -t itzg/minecraft-server:${CIRCLE_BRANCH} .
# - run:
# name: Build arm v7 image
# command: docker build -t itzg/minecraft-server:${CIRCLE_BRANCH}-arm-v7 --platform linux/arm/v7 --build-arg ARCH=armv7 .
workflows:
version: 2
build:
jobs:
- minecraft_server:
filters:
branches:
ignore:
- armv7
- multiarch

View File

@@ -68,6 +68,8 @@ jobs:
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.prep.outputs.tags }}
# ensure latest base image is used
pull: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
labels: |

View File

@@ -1,4 +1,4 @@
FROM adoptopenjdk/openjdk8-openj9:alpine
FROM adoptopenjdk/openjdk11:alpine-jre
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
@@ -70,7 +70,7 @@ COPY log4j2.xml /tmp/log4j2.xml
WORKDIR /data
ENV UID=1000 GID=1000 \
MEMORY="1G" \
JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
TYPE=VANILLA VERSION=LATEST \
ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME="Dedicated Server" \

View File

@@ -499,6 +499,18 @@ Extra variables:
- `PURPUR_BUILD=LATEST` : set a specific Purpur build to use
- `FORCE_REDOWNLOAD=false` : set to true to force the located server jar to be re-downloaded
## Running a Yatopia server
A [Yatopia](https://github.com/YatopiaMC/Yatopia) server, which is a "blazing fast Tuinity fork with best in class performance".
-e TYPE=YATOPIA
> NOTE: the `VERSION` variable is used to locate the Yatopia version to download
Extra variables:
- `RELEASE=stable` : set to `stable` or `latest`
- `FORCE_REDOWNLOAD=false` : set to true to force the located server jar to be re-downloaded
## Running a Magma server
A [Magma](https://magmafoundation.org/) server, which is a combination of Forge and PaperMC, can be used with
@@ -1138,14 +1150,6 @@ via a `JVM_XX_OPTS` environment variable.
For some cases, if e.g. after removing mods, it could be necessary to startup minecraft with an additional `-D` parameter like `-Dfml.queryResult=confirm`. To address this you can use the environment variable `JVM_DD_OPTS`, which builds the params from a given list of values separated by space, but without the `-D` prefix. To make things running under systems (e.g. Plesk), which doesn't allow `=` inside values, a `:` (colon) could be used instead. The upper example would look like this:
`JVM_DD_OPTS=fml.queryResult:confirm`, and will be converted to `-Dfml.queryResult=confirm`.
The container uses [OpenJ9](https://www.eclipse.org/openj9/docs) and a couple of J9 options are
simplified by environment variables:
- `-e TUNE_VIRTUALIZED=TRUE` : enables the option to
[optimize for virtualized environments](https://www.eclipse.org/openj9/docs/xtunevirtualized/)
- `-e TUNE_NURSERY_SIZES=TRUE` : configures nursery sizes where the initial size is 50%
of the `MAX_MEMORY` and the max size is 80%.
### Enable Remote JMX for Profiling
To enable remote JMX, such as for profiling with VisualVM or JMC, add the environment variable `ENABLE_JMX=true` and add a port forwarding of TCP port 7091, such as:

View File

@@ -4,6 +4,7 @@ IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
: ${EULA:=}
: ${PROXY:=}
: ${RCON_PASSWORD_FILE:=}
@@ -112,6 +113,10 @@ case "${TYPE^^}" in
;;
FTB|CURSEFORGE)
log "**********************************************************************"
log "WARNING: The image tag itzg/minecraft-server:java8 is recommended"
log " since some mods require Java 8"
log "**********************************************************************"
exec ${SCRIPTS:-/}start-deployCF "$@"
;;
@@ -147,11 +152,15 @@ case "${TYPE^^}" in
exec ${SCRIPTS:-/}start-deployPurpur "$@"
;;
YATOPIA)
exec ${SCRIPTS:-/}start-deployYatopia "$@"
;;
*)
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"
log " CUSTOM, MAGMA, MOHIST, CATSERVER, YATOPIA"
exit 1
;;

30
start-deployYatopia Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
. ${SCRIPTS:-/}start-utils
isDebugging && set -x
: ${VANILLA_VERSION:?}
: ${RELEASE:=stable}
: ${FORCE_REDOWNLOAD:=false}
requireEnum RELEASE stable latest
export SERVER="yatopia-${RELEASE}-${VANILLA_VERSION}.jar"
if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
downloadUrl="https://api.yatopiamc.org/v2/${RELEASE}Build/download?branch=ver/${VANILLA_VERSION}"
log "Downloading Yatopia from $downloadUrl ..."
if ! curl -fsSL -o "$SERVER" "$downloadUrl"; then
log "ERROR: failed to download from $downloadUrl (status=$?)"
exit 3
fi
fi
# Normalize on Spigot for later operations
export TYPE=SPIGOT
export SKIP_LOG4J_CONFIG=true
# Continue to Final Setup
exec ${SCRIPTS:-/}start-finalSetupWorld $@

View File

@@ -83,23 +83,6 @@ if [ -n "$JVM_DD_OPTS" ]; then
done
fi
if isTrue ${TUNE_VIRTUALIZED}; then
JVM_XX_OPTS="${JVM_XX_OPTS} -Xtune:virtualized"
fi
if isTrue ${TUNE_NURSERY_SIZES}; then
case ${MAX_MEMORY^^} in
*G)
MAX_MEMORY_MB=$(( ${MAX_MEMORY%?} * 1024 )) ;;
*M)
MAX_MEMORY_MB=${MAX_MEMORY%?} ;;
esac
NURSERY_MINIMUM=$(( ${MAX_MEMORY_MB} / 2 ))
NURSERY_MAXIMUM=$(( ${MAX_MEMORY_MB} * 4/5 ))
JVM_XX_OPTS="${JVM_XX_OPTS} -Xmns${NURSERY_MINIMUM}M -Xmnx${NURSERY_MAXIMUM}M"
fi
if isTrue ${ENABLE_JMX}; then
: ${JMX_HOST:=0.0.0.0}
: ${JMX_PORT:=7091}

View File

@@ -144,6 +144,20 @@ requireVar() {
fi
}
requireEnum() {
var=${1?}
shift
for allowed in $*; do
if [[ ${!var} = $allowed ]]; then
return 0
fi
done
log "ERROR: $var must be set to one of $@"
# exit 1
}
function writeEula() {
if ! echo "# Generated via Docker
# $(date)