Compare commits

...

123 Commits

Author SHA1 Message Date
Geoff Bourne
675d05920b Auto-merging via docker-versions-create 2021-11-15 20:48:02 -06:00
itzg
9544aeaf7a docs: Auto update markdown TOC 2021-11-16 02:46:53 +00:00
Geoff Bourne
babeac1693 docs: removed dangling sentence in Fabric section
#1121
2021-11-15 20:46:40 -06:00
Geoff Bourne
106a7132d4 Auto-merging via docker-versions-create 2021-11-13 19:17:46 -06:00
Geoff Bourne
130b067955 fix: changed logging config's queue to TerminalConsole
#1119
2021-11-13 19:17:20 -06:00
Geoff Bourne
0e04a10efa Auto-merging via docker-versions-create 2021-11-13 18:52:19 -06:00
Geoff Bourne
df7d6c298a fix: defaulted SERVER_PORT for health and autopause
#1120
2021-11-13 18:42:24 -06:00
Geoff Bourne
0d8df635d6 Auto-merging via docker-versions-create 2021-11-12 21:24:10 -06:00
Geoff Bourne
a8a60264e9 misc: code cleanup in start-setupServerProperties 2021-11-12 21:21:01 -06:00
itzg
721df8d32b docs: Auto update markdown TOC 2021-11-13 03:18:08 +00:00
Geoff Bourne
2375a6796c feat: Allowed for server properties to be cleared vs skipped
#1117
2021-11-12 21:17:21 -06:00
dependabot[bot]
e04e943e1c build(deps): bump actions/checkout from 2.3.5 to 2.4.0 (#1112) 2021-11-08 07:00:59 -06:00
Geoff Bourne
1bf75671f6 misc: adjusted bug and question templates 2021-11-06 21:58:22 -05:00
Geoff Bourne
7d56de9d15 Cleaned up minecraft_server.jar for versions >= 1.6
#306
2021-11-06 21:46:31 -05:00
Geoff Bourne
e0dedc194d Auto-merging via docker-versions-create 2021-11-06 21:36:59 -05:00
Geoff Bourne
a8de790b57 Used minecraft_server.jar for versions before 1.6
#306
2021-11-06 21:35:57 -05:00
Geoff Bourne
cafddd3b12 Used minecraft_server.jar for versions before 1.6
#306
2021-11-06 21:34:24 -05:00
itzg
fc958faf7b docs: Auto update markdown TOC 2021-11-05 19:39:25 +00:00
Michael Vorburger ⛑️
402894cd8d document that default RCON_PASSWORD = minecraft in README (#1109) 2021-11-05 14:38:02 -05:00
Geoff Bourne
f97cea4b06 misc: adjusted debug logs when SKIP_SERVER_PROPERTIES
#1108
2021-11-04 21:49:03 -05:00
Geoff Bourne
ef32e8ed4c Auto-merging via docker-versions-create 2021-11-04 21:03:18 -05:00
Geoff Bourne
489b583ad7 Auto-merging via docker-versions-create 2021-10-31 09:44:37 -05:00
Geoff Bourne
8c4dff22fb Switched base image to JDK
#1064
2021-10-27 21:23:27 -05:00
Geoff Bourne
455f31c9d8 Auto-merging via docker-versions-create 2021-10-25 19:22:48 -05:00
Geoff Bourne
bac1bfb5dc Auto-merging via docker-versions-create 2021-10-24 20:25:05 -05:00
Geoff Bourne
9994c64b51 Auto-merging via docker-versions-create 2021-10-23 09:42:03 -05:00
Geoff Bourne
92079fc01f Merged latest from master 2021-10-21 21:55:29 -05:00
Geoff Bourne
98378130f2 Fixed Crucible libraries unzip for Alpine
#1052
2021-10-19 21:17:54 -05:00
Geoff Bourne
42856da49d Auto-merged latest from master 2021-10-18 22:08:22 -05:00
Geoff Bourne
83b05609d3 Added support for Crucible server type
#1052
2021-10-18 22:01:52 -05:00
Geoff Bourne
21fab1bf41 Auto-merging via docker-versions-create 2021-10-17 14:51:54 -05:00
Geoff Bourne
2849359a11 Auto-merging via docker-versions-create 2021-10-15 18:56:01 -05:00
Geoff Bourne
cd337f34da Auto-merging via docker-versions-create 2021-10-15 18:46:01 -05:00
Geoff Bourne
7a9aa760a2 Auto-merging via docker-versions-create 2021-10-10 09:55:28 -05:00
Geoff Bourne
2fd405ec5b Auto-merging via docker-versions-create 2021-10-09 15:24:22 -05:00
Geoff Bourne
cbfe9a069c Merged latest from master 2021-10-09 12:02:02 -05:00
Geoff Bourne
2db61fd72f Auto-merging via docker-versions-create 2021-10-02 19:21:27 -05:00
Geoff Bourne
6e2073fda5 Auto-merging via docker-versions-create 2021-09-29 10:26:44 -05:00
Geoff Bourne
ae48a8710e Auto-merging via docker-versions-create 2021-09-27 20:40:23 -05:00
Geoff Bourne
3b54a9fd67 Auto-merging via docker-versions-create 2021-09-20 12:29:36 -05:00
Geoff Bourne
a66efb1a4f Auto-merging via docker-versions-create 2021-09-15 21:30:00 -05:00
Geoff Bourne
83938d8989 Auto-merging via docker-versions-create 2021-09-15 21:05:30 -05:00
Geoff Bourne
8335b81bd8 Merged latest from master 2021-09-15 21:01:21 -05:00
Geoff Bourne
b9c379ec6c Auto-merging via docker-versions-create 2021-09-15 20:35:51 -05:00
Geoff Bourne
b9ecbf7497 Auto-merging via docker-versions-create 2021-08-30 21:36:02 -05:00
Geoff Bourne
eca00e88bf Auto-merging via docker-versions-create 2021-08-10 12:55:04 -05:00
Geoff Bourne
2a3169344d Auto-merging via docker-versions-create 2021-08-01 12:11:15 -05:00
Geoff Bourne
8ec4f0d244 Auto-merging via docker-versions-create 2021-07-31 09:26:17 -05:00
Geoff Bourne
d45250ebf2 Auto-merging via docker-versions-create 2021-07-26 19:34:15 -05:00
Geoff Bourne
03110aef99 Merged latest from master 2021-07-25 09:58:03 -05:00
Geoff Bourne
f344e7e823 Auto-merging via docker-versions-create 2021-07-25 09:35:30 -05:00
Geoff Bourne
c7fcaf1ec6 Auto-merging via docker-versions-create 2021-07-23 21:26:32 -05:00
Geoff Bourne
9d700041a7 Auto-merging via docker-versions-create 2021-07-17 21:13:39 -05:00
Geoff Bourne
4af4ed69a5 Auto-merging via docker-versions-create 2021-07-17 20:56:25 -05:00
Geoff Bourne
d215c14996 Auto-merging via docker-versions-create 2021-07-17 18:02:29 -05:00
Geoff Bourne
4716254b5b Auto-merging via docker-versions-create 2021-07-14 18:43:03 -05:00
Geoff Bourne
3c2b7f0718 Auto-merging via docker-versions-create 2021-07-12 19:08:38 -05:00
Geoff Bourne
0fd43f5a05 Auto-merging via docker-versions-create 2021-07-09 19:57:21 -05:00
Geoff Bourne
fae6479453 Auto-merging via docker-versions-create 2021-07-08 17:58:19 -05:00
Geoff Bourne
d9df5bf773 Auto-merging via docker-versions-create 2021-07-08 08:02:40 -05:00
itzg
13d7248c38 Auto-merging via docker-versions-create 2021-07-08 12:55:55 +00:00
Geoff Bourne
3c54954057 Auto merge branch with master 2021-07-08 07:37:23 -05:00
itzg
84823a559d Auto-merging via docker-versions-create 2021-07-07 14:56:34 +00:00
itzg
d543df768b Auto-merging via docker-versions-create 2021-07-06 12:22:19 +00:00
itzg
74968389a2 Auto-merging via docker-versions-create 2021-07-05 12:10:23 +00:00
itzg
1701718515 Auto-merging via docker-versions-create 2021-07-04 19:53:56 +00:00
Geoff Bourne
ed6937654c Auto-merging from master 2021-07-03 14:22:14 -05:00
Geoff Bourne
73eb6e2e45 Auto-merge from master 2021-07-02 15:52:08 -05:00
itzg
8b982472a4 Auto-merging via docker-versions-create 2021-07-02 16:55:49 +00:00
itzg
ab406727d6 Auto-merging via docker-versions-create 2021-06-28 12:13:57 +00:00
itzg
5fc74a45f7 Auto-merging via docker-versions-create 2021-06-27 13:13:05 +00:00
itzg
17ecd48cd8 Auto-merging via docker-versions-create 2021-06-24 12:46:59 +00:00
Geoff Bourne
4732ce27a6 Auto-merging via docker-versions-create 2021-06-23 22:32:34 -05:00
Geoff Bourne
6e10768e7f ci: test java8 with VERSION=1.16.5 2021-06-20 13:49:02 -05:00
Geoff Bourne
bb47a3705d Auto merge branch with master 2021-06-20 12:46:28 -05:00
Geoff Bourne
c3e1e92547 Auto-merging via docker-versions-create 2021-06-20 12:46:25 -05:00
Geoff Bourne
9ddd768f44 Auto-merging via docker-versions-create 2021-06-05 17:49:30 -05:00
Geoff Bourne
62e1ff8ffa Restored correct ps usage for autopause in Alpine
#897
2021-05-27 08:22:17 -05:00
Geoff Bourne
5f95d135f5 Auto-merging via docker-versions-create 2021-05-24 20:49:44 -05:00
Geoff Bourne
8e32d26b0f Merge branch 'master' into java8 2021-05-23 12:26:33 -05:00
Geoff Bourne
573f064970 Merge from master 2021-05-22 12:58:53 -05:00
Geoff Bourne
0bc6f4075b Auto-merging via docker-versions-create 2021-05-21 23:01:07 -05:00
Geoff Bourne
4ebcc0ef48 Auto-merging via docker-versions-create 2021-05-21 22:47:21 -05:00
Geoff Bourne
57720cf394 Merge branch 'master' into java8 2021-05-21 22:15:35 -05:00
Geoff Bourne
64b2783f19 ci: restored changes for java8 2021-05-21 17:18:57 -05:00
Geoff Bourne
1dbdd7628a Merge branch 'master' into java8 2021-05-21 17:04:24 -05:00
Geoff Bourne
4252ec710f ci: use CACHE_NAME in main.yml 2021-05-21 17:04:11 -05:00
Geoff Bourne
11d455c284 Merge branch 'master' into java8
# Conflicts:
#	Dockerfile
2021-05-21 17:02:17 -05:00
Geoff Bourne
08bc419dc8 Auto-merging via docker-versions-create 2021-05-19 20:27:11 -05:00
Geoff Bourne
67c23017d0 Auto-merging via docker-versions-create 2021-05-19 20:24:31 -05:00
Geoff Bourne
6e1ba3667c Auto-merging via docker-versions-create 2021-05-19 20:18:57 -05:00
Geoff Bourne
0c2f8b903b Auto-merging via docker-versions-create 2021-05-15 12:40:56 -05:00
Geoff Bourne
b9335d9cd6 Auto-merging via docker-versions-create 2021-05-06 20:12:25 -05:00
Geoff Bourne
0d92092b90 Auto-merging via docker-versions-create 2021-04-30 14:27:40 -05:00
Geoff Bourne
e653a41b3f Auto-merging via docker-versions-create 2021-04-30 11:11:19 -05:00
Geoff Bourne
82e63c54c4 Auto-merging via docker-versions-create 2021-04-28 16:50:55 -05:00
Geoff Bourne
f9c573f598 Auto-merging via docker-versions-create 2021-04-26 08:20:41 -05:00
Geoff Bourne
bf8b9cf20d Auto-merging via docker-versions-create 2021-04-24 13:42:07 -05:00
Geoff Bourne
0dd5a412d9 Auto-merging via docker-versions-create 2021-04-23 21:02:46 -05:00
Geoff Bourne
b389561091 Auto-merging via docker-versions-create 2021-04-18 13:29:12 -05:00
Geoff Bourne
6ee055761d Merge branch 'master' into java8 2021-04-11 10:41:32 -05:00
Geoff Bourne
49f9ff645e Auto-merging via docker-versions-create 2021-04-11 10:08:47 -05:00
Geoff Bourne
004cbdb9f7 Auto-merging via docker-versions-create 2021-04-08 19:12:56 -05:00
Geoff Bourne
45856a1a81 Auto-merging via docker-versions-create 2021-04-01 16:30:55 -05:00
Geoff Bourne
1e615e76e8 Merge branch 'master' into java8
# Conflicts:
#	start-configuration
#	start-deployCF
2021-03-18 19:58:16 -05:00
Geoff Bourne
1c85a685de Added support for CF modpacks using settings.cfg
#772 #800
2021-03-14 15:02:40 -05:00
Geoff Bourne
7cd207f40b docs: Added more info about getbukkit's weird 1.8 file naming
#103
2021-03-13 16:54:56 -06:00
Geoff Bourne
140a8aa90c Merge branch 'master' into java8 2021-03-11 19:40:26 -06:00
Geoff Bourne
76dcff9d18 Merge branch 'master' into java8 2021-03-11 17:23:48 -06:00
Geoff Bourne
a9a86d249b Merge branch 'master' into java8
# Conflicts:
#	start-configuration
2021-03-06 16:23:07 -06:00
Geoff Bourne
595760d301 Shifted PATH-fix earlier in startup 2021-03-06 16:04:06 -06:00
Geoff Bourne
6d3f194ce3 Merge from master 2021-02-27 20:47:00 -06:00
Geoff Bourne
21c1620f0c misc: java is actually found in /usr/bin by default 2021-02-11 15:05:45 -06:00
Geoff Bourne
e78e5af96d Fix PATH to include java when needed 2021-02-10 14:49:13 -06:00
Geoff Bourne
0fb9700fc7 Auto-merging via docker-versions-create 2021-02-10 14:01:35 -06:00
Geoff Bourne
18925ef32c Merged latest from master 2021-02-08 21:16:50 -06:00
Geoff Bourne
f06b990f8a Auto-merging via docker-versions-create 2021-02-07 18:03:40 -06:00
Geoff Bourne
75844ae81a Fix java8 base image to actually be Java 8
#753
2021-02-07 11:10:38 -06:00
Geoff Bourne
6bb2323c46 Auto-merging docker-versions-create.sh
CONFLICT (content): Merge conflict in docker-versions-create.sh
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
2021-02-07 09:07:30 -06:00
Geoff Bourne
7814ca21b5 Merge branch 'master' into java8
# Conflicts:
#	README.md
#	start-configuration
2021-01-30 18:56:33 -06:00
Geoff Bourne
b8806629ec Merged latest from master 2021-01-30 16:48:11 -06:00
Geoff Bourne
4a7f838a0f Upgraded mainline/latest to Java 11 2021-01-30 16:16:36 -06:00
Geoff Bourne
2d07dee4df Prepared forge branch's Dockerfile 2021-01-30 15:58:03 -06:00
24 changed files with 169 additions and 154 deletions

View File

@@ -24,9 +24,17 @@ body:
attributes: attributes:
label: Container definition label: Container definition
description: Please provide the compose file or run command used to create the container description: Please provide the compose file or run command used to create the container
value: |
```
Paste run command or compose file here
```
- type: textarea - type: textarea
id: logs id: logs
attributes: attributes:
label: Container logs label: Container logs
description: | description: |
Please provide container logs from the start of the container, which will be the ones prefixed with `[init]`. It is even better if you can set the variable `DEBUG` to "true" and provide those debug container logs. Please provide container logs from the start of the container, which will be the ones prefixed with `[init]`. It is even better if you can set the variable `DEBUG` to "true" and provide those debug container logs.
value: |
```
Paste logs here
```

7
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
contact_links:
- name: Ask a question in discussions
url: https://github.com/itzg/docker-minecraft-server/discussions
about: Please ask questions here
- name: Ask a question on Discord
url: https://discord.gg/DXfKpjB
about: Please ask questions here

View File

@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2.3.5 uses: actions/checkout@v2.4.0
- name: Docker meta - name: Docker meta
id: meta id: meta

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 5 timeout-minutes: 5
steps: steps:
- uses: actions/checkout@v2.3.5 - uses: actions/checkout@v2.4.0
- run: | - run: |
curl https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc -o gh-md-toc curl https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc -o gh-md-toc
chmod a+x gh-md-toc chmod a+x gh-md-toc

View File

@@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2.3.5 - uses: actions/checkout@v2.4.0
- name: Run tests - name: Run tests
run: | run: |
@@ -31,7 +31,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2.3.5 - uses: actions/checkout@v2.4.0
- name: Prepare - name: Prepare
id: prep id: prep

View File

@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.5 - uses: actions/checkout@v2.4.0
- name: Run tests - name: Run tests
run: | run: |

View File

@@ -93,5 +93,5 @@ The multiarch images are built and published by [a Github action](https://github
The following git command can be used to provide the bulk of release notes content: The following git command can be used to provide the bulk of release notes content:
```shell script ```shell script
git log --invert-grep --grep "^ci:" --grep "^misc:" --grep "^docs:" --pretty="- %s" 1.1.0..1.2.0 git log --invert-grep --grep "^ci:" --grep "^misc:" --grep "^docs:" --grep "^build(deps)" --pretty="- %s" 1.1.0..1.2.0
``` ```

View File

@@ -1,30 +1,29 @@
FROM eclipse-temurin:16-jdk FROM openjdk:8-jdk-alpine
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>" LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
RUN apt-get update \ RUN apk add --no-cache -U \
&& DEBIAN_FRONTEND=noninteractive \ openssl \
apt-get install -y \
imagemagick \ imagemagick \
gosu \ lsof \
sudo \ su-exec \
net-tools \ shadow \
iputils-ping \ bash \
curl wget \ curl iputils wget \
git \ git \
jq \ jq \
dos2unix \
mysql-client \ mysql-client \
tzdata \ tzdata \
rsync \ rsync \
nano \ nano \
unzip \ sudo \
knockd \ knock \
ttf-dejavu \ ttf-dejavu
&& apt-get clean
RUN addgroup --gid 1000 minecraft \ RUN addgroup -g 1000 minecraft \
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft && adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \
&& mkdir -m 777 /data \
&& chown minecraft:minecraft /data /home/minecraft
COPY files/sudoers* /etc/sudoers.d COPY files/sudoers* /etc/sudoers.d
@@ -32,9 +31,9 @@ EXPOSE 25565 25575
# hook into docker BuildKit --platform support # hook into docker BuildKit --platform support
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope # see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
ARG TARGETOS ARG TARGETOS=linux
ARG TARGETARCH ARG TARGETARCH=amd64
ARG TARGETVARIANT ARG TARGETVARIANT=""
ARG EASY_ADD_VER=0.7.1 ARG EASY_ADD_VER=0.7.1
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
@@ -72,10 +71,9 @@ WORKDIR /data
STOPSIGNAL SIGTERM STOPSIGNAL SIGTERM
ENV UID=1000 GID=1000 \ ENV UID=1000 GID=1000 \
MEMORY="1G" \ JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
TYPE=VANILLA VERSION=LATEST \ TYPE=VANILLA VERSION=LATEST \
ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \ ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME="Dedicated Server" \
ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \ ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \
AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0 AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0

View File

@@ -133,7 +133,7 @@ By default, the container will download the latest version of the "vanilla" [Min
* [Running on RaspberryPi](#running-on-raspberrypi) * [Running on RaspberryPi](#running-on-raspberrypi)
* [Contributing](#contributing) * [Contributing](#contributing)
<!-- Added by: runner, at: Fri Nov 5 02:00:06 UTC 2021 --> <!-- Added by: runner, at: Tue Nov 16 02:46:53 UTC 2021 -->
<!--te--> <!--te-->
@@ -567,8 +567,6 @@ docker run -d -v /path/on/host:/data ... \
-e FABRIC_LOADER_VERSION=0.11.7 -e FABRIC_LOADER_VERSION=0.11.7
``` ```
In order to add mods, you have two options:
### Running a Limbo server ### Running a Limbo server
A [Limbo](https://github.com/LOOHP/Limbo) server can be run by setting `TYPE` to `LIMBO`. A [Limbo](https://github.com/LOOHP/Limbo) server can be run by setting `TYPE` to `LIMBO`.
@@ -808,6 +806,8 @@ This will reset any manual configuration of the `server.properties` file, so if
In the opposite case, you can skip the startup script's creation of `server.properties`, by setting `SKIP_SERVER_PROPERTIES` to "true". In the opposite case, you can skip the startup script's creation of `server.properties`, by setting `SKIP_SERVER_PROPERTIES` to "true".
> NOTE: to clear a server property, set the variable to an empty string, such as `-e RESOURCE_PACK=""`. A variables that maps to a server property that is unset, is ignored and the existing `server.property` is left unchanged.
### Message of the Day ### Message of the Day
The message of the day, shown below each server entry in the client UI, can be changed with the `MOTD` environment variable, such as The message of the day, shown below each server entry in the client UI, can be changed with the `MOTD` environment variable, such as
@@ -875,6 +875,7 @@ The server icon which has been set doesn't get overridden by default. It can be
### Rcon ### Rcon
To use rcon use the `ENABLE_RCON` and `RCON_PASSWORD` variables. To use rcon use the `ENABLE_RCON` and `RCON_PASSWORD` variables.
The default RCON password is _"minecraft",_ but it's **highly** recommended to override that.
By default rcon port will be `25575` but can easily be changed with the `RCON_PORT` variable. By default rcon port will be `25575` but can easily be changed with the `RCON_PORT` variable.
docker run -d -e ENABLE_RCON=true -e RCON_PASSWORD=testing docker run -d -e ENABLE_RCON=true -e RCON_PASSWORD=testing

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# shellcheck source=../start-utils # shellcheck source=../scripts/start-utils
. ${SCRIPTS:-/}start-utils . "${SCRIPTS:-/}start-utils"
if isTrue "${DISABLE_HEALTHCHECK}"; then if isTrue "${DISABLE_HEALTHCHECK}"; then
echo "Healthcheck disabled" echo "Healthcheck disabled"
@@ -10,6 +10,6 @@ elif isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -ax -o stat,comm | grep 'java' |
echo "Java process suspended by Autopause function" echo "Java process suspended by Autopause function"
exit 0 exit 0
else else
mc-monitor status --host localhost --port $SERVER_PORT mc-monitor status --host localhost --port "${SERVER_PORT:-25565}"
exit $? exit $?
fi fi

View File

@@ -5,15 +5,15 @@ current_uptime() {
} }
java_running() { java_running() {
[[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]]
} }
java_process_exists() { java_process_exists() {
[[ -n "$(ps -ax -o comm | grep 'java')" ]] [[ -n "$(ps -a -o comm | grep 'java')" ]]
} }
rcon_client_exists() { rcon_client_exists() {
[[ -n "$(ps -ax -o comm | grep 'rcon-cli')" ]] [[ -n "$(ps -a -o comm | grep 'rcon-cli')" ]]
} }
mc_server_listening() { mc_server_listening() {

View File

@@ -3,12 +3,12 @@
[unpauseMCServer-server] [unpauseMCServer-server]
sequence = 25565 sequence = 25565
seq_timeout = 1 seq_timeout = 1
command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh command = /sbin/su-exec minecraft:minecraft /autopause/resume.sh
tcpflags = syn tcpflags = syn
[unpauseMCServer-rcon] [unpauseMCServer-rcon]
sequence = 25575 sequence = 25575
seq_timeout = 1 seq_timeout = 1
command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh command = /sbin/su-exec minecraft:minecraft /autopause/resume.sh
tcpflags = syn tcpflags = syn
[unpauseMCServer-bedrock] [unpauseMCServer-bedrock]
sequence = 19132:udp sequence = 19132:udp

View File

@@ -2,7 +2,7 @@
. /start-utils . /start-utils
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; then if [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; then
# save world # save world
rcon-cli save-all >/dev/null rcon-cli save-all >/dev/null

View File

@@ -2,7 +2,7 @@
. /start-utils . /start-utils
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^T.*$ ]] ; then if [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^T.*$ ]] ; then
logAutopauseAction "Knocked, resuming Java process" logAutopauseAction "Knocked, resuming Java process"
pkill -CONT java pkill -CONT java
fi fi

View File

@@ -4,7 +4,7 @@
<Console name="SysOut" target="SYSTEM_OUT"> <Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" /> <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
</Console> </Console>
<Queue name="ServerGuiConsole"> <Queue name="TerminalConsole">
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" /> <PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" />
</Queue> </Queue>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz"> <RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
@@ -28,7 +28,7 @@
</filters> </filters>
<AppenderRef ref="SysOut"/> <AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/> <AppenderRef ref="File"/>
<AppenderRef ref="ServerGuiConsole"/> <AppenderRef ref="TerminalConsole"/>
</Root> </Root>
</Loggers> </Loggers>
</Configuration> </Configuration>

View File

@@ -40,7 +40,7 @@ if ! isTrue "${SKIP_SUDO:-false}" && [ $(id -u) = 0 ]; then
echo 'hosts: files dns' > /etc/nsswitch.conf echo 'hosts: files dns' > /etc/nsswitch.conf
fi fi
exec gosu ${runAsUser}:${runAsGroup} ${SCRIPTS:-/}start-configuration $@ exec su-exec ${runAsUser}:${runAsGroup} ${SCRIPTS:-/}start-configuration $@
else else
exec ${SCRIPTS:-/}start-configuration $@ exec ${SCRIPTS:-/}start-configuration $@
fi fi

View File

@@ -1,9 +1,15 @@
#!/bin/bash #!/bin/bash
. ${SCRIPTS:-/}start-utils # shellcheck source=start-utils
. "${SCRIPTS:-/}start-utils"
: "${SERVER_PORT:=25565}"
export SERVER_PORT
log "Autopause functionality enabled" log "Autopause functionality enabled"
isDebugging && set -x
cp /autopause/knockd-config.cfg /tmp/knockd-config.cfg cp /autopause/knockd-config.cfg /tmp/knockd-config.cfg
# update server port to listen to # update server port to listen to

View File

@@ -59,7 +59,7 @@ fi
if ! which java > /dev/null; then if ! which java > /dev/null; then
log "Fixing PATH to include java" log "Fixing PATH to include java"
PATH="${PATH}:/opt/java/openjdk/bin" PATH="${PATH}:/usr/bin"
fi fi
export VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json export VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json
@@ -103,14 +103,6 @@ case "${TYPE^^}" in
;; ;;
FORGE) FORGE)
if versionLessThan 1.17; then
log "**********************************************************************"
log "WARNING: The image tag itzg/minecraft-server:java8 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"
log "**********************************************************************"
fi
exec ${SCRIPTS:-/}start-deployForge "$@" exec ${SCRIPTS:-/}start-deployForge "$@"
;; ;;
@@ -118,15 +110,7 @@ case "${TYPE^^}" in
exec ${SCRIPTS:-/}start-deployFabric "$@" exec ${SCRIPTS:-/}start-deployFabric "$@"
;; ;;
FTBA)
exec ${SCRIPTS:-/}start-deployFTBA "$@"
;;
FTB|CURSEFORGE) FTB|CURSEFORGE)
log "**********************************************************************"
log "NOTE: Some mods and modpacks may require Java 8."
log " If so, use itzg/minecraft-server:java8"
log "**********************************************************************"
exec ${SCRIPTS:-/}start-deployCF "$@" exec ${SCRIPTS:-/}start-deployCF "$@"
;; ;;
@@ -171,12 +155,6 @@ case "${TYPE^^}" in
;; ;;
CRUCIBLE) CRUCIBLE)
log "**********************************************************************"
log "WARNING: The image tag itzg/minecraft-server:java8 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"
log "**********************************************************************"
exec "${SCRIPTS:-/}start-deployCrucible" "$@" exec "${SCRIPTS:-/}start-deployCrucible" "$@"
;; ;;

View File

@@ -85,6 +85,8 @@ if ! isTrue "${USE_MODPACK_START_SCRIPT:-true}"; then
exit 2 exit 2
fi fi
forgeInstallerJar=$(ls -t "${forgeInstallerJar}" | head -1)
log "Installing forge server" log "Installing forge server"
dirOfInstaller=$(dirname "${forgeInstallerJar}") dirOfInstaller=$(dirname "${forgeInstallerJar}")
(cd "${dirOfInstaller}"; java -jar "$(basename "${forgeInstallerJar}")" --installServer) (cd "${dirOfInstaller}"; java -jar "$(basename "${forgeInstallerJar}")" --installServer)

View File

@@ -47,6 +47,7 @@ if [ ! -d "$librariesDir" ]; then
exit 1 exit 1
fi fi
mkdir "$librariesDir"
if ! unzip /tmp/libraries.zip -d "$librariesDir"; then if ! unzip /tmp/libraries.zip -d "$librariesDir"; then
log "ERROR: failed to unzip Crucible libraries" log "ERROR: failed to unzip Crucible libraries"
exit 1 exit 1

View File

@@ -41,6 +41,16 @@ if [ ! -e "$SERVER" ] || [ -n "$FORCE_REDOWNLOAD" ]; then
fi fi
fi fi
if versionLessThan 1.6; then
if ! [[ -L /data/minecraft_server.jar && /data/minecraft_server.jar -ef "/data/$SERVER" ]]; then
rm -f /data/minecraft_server.jar
ln -s "/data/$SERVER" /data/minecraft_server.jar
fi
SERVER=minecraft_server.jar
elif [[ -L /data/minecraft_server.jar ]]; then
rm -f /data/minecraft_server.jar
fi
isDebugging && ls -l isDebugging && ls -l
exec "${SCRIPTS:-/}start-setupWorld" "$@" exec "${SCRIPTS:-/}start-setupWorld" "$@"

View File

@@ -1,40 +1,46 @@
#!/bin/bash #!/bin/bash
. ${SCRIPTS:-/}start-utils # shellcheck source=start-utils
. "${SCRIPTS:-/}start-utils"
: ${SERVER_PROPERTIES:=/data/server.properties} : "${SERVER_PROPERTIES:=/data/server.properties}"
# FUNCTIONS # FUNCTIONS
function setServerPropValue {
local prop=$1
local value=$2
# normalize booleans
case ${value^^} in
TRUE|FALSE)
value=${value,,} ;;
esac
if grep "${prop}" "$SERVER_PROPERTIES" > /dev/null; then
log "Setting ${prop} to '${value}' in ${SERVER_PROPERTIES}"
sed -i "/^${prop}\s*=/ c ${prop}=${value//\\/\\\\}" "$SERVER_PROPERTIES"
else
log "Adding ${prop} with '${value}' in ${SERVER_PROPERTIES}"
echo "${prop}=${value}" >> "$SERVER_PROPERTIES"
fi
}
function setServerProp { function setServerProp {
local prop=$1 local prop=$1
local var=$2 local varName=$2
if [ -n "$var" ]; then
# normalize booleans if [ -v $varName ]; then
case ${var^^} in setServerPropValue "$prop" "${!varName}"
TRUE|FALSE)
var=${var,,} ;;
esac
if grep "${prop}" "$SERVER_PROPERTIES" > /dev/null; then
log "Setting ${prop} to '${var}' in ${SERVER_PROPERTIES}"
sed -i "/^${prop}\s*=/ c ${prop}=${var//\\/\\\\}" "$SERVER_PROPERTIES"
else
log "Adding ${prop} with '${var}' in ${SERVER_PROPERTIES}"
echo "${prop}=${var}" >> "$SERVER_PROPERTIES"
fi
else
isDebugging && log "Skip setting ${prop}"
fi fi
} }
function customizeServerProps { function customizeServerProps {
if [ -n "$WHITELIST" ] || isTrue ${ENABLE_WHITELIST:-false}; then if [ -n "$WHITELIST" ] || isTrue "${ENABLE_WHITELIST:-false}"; then
log "Creating whitelist" log "Creating whitelist"
setServerProp "whitelist" "true" setServerPropValue "whitelist" "true"
setServerProp "white-list" "true" setServerPropValue "white-list" "true"
else else
log "Disabling whitelist" log "Disabling whitelist"
setServerProp "whitelist" "false" setServerPropValue "whitelist" "false"
setServerProp "white-list" "false" setServerPropValue "white-list" "false"
fi fi
# If not provided, generate a reasonable default message-of-the-day, # If not provided, generate a reasonable default message-of-the-day,
@@ -53,57 +59,57 @@ function customizeServerProps {
MOTD="A ${label} Minecraft Server powered by Docker" MOTD="A ${label} Minecraft Server powered by Docker"
fi fi
setServerProp "server-name" "$SERVER_NAME" setServerProp "server-name" SERVER_NAME
setServerProp "server-ip" "$SERVER_IP" setServerProp "server-ip" SERVER_IP
setServerProp "server-port" "$SERVER_PORT" setServerProp "server-port" SERVER_PORT
setServerProp "motd" "$(echo $MOTD | mc-image-helper asciify)" setServerProp "allow-nether" ALLOW_NETHER
setServerProp "allow-nether" "$ALLOW_NETHER" setServerProp "announce-player-achievements" ANNOUNCE_PLAYER_ACHIEVEMENTS
setServerProp "announce-player-achievements" "$ANNOUNCE_PLAYER_ACHIEVEMENTS" setServerProp "enable-command-block" ENABLE_COMMAND_BLOCK
setServerProp "enable-command-block" "$ENABLE_COMMAND_BLOCK" setServerProp "spawn-animals" SPAWN_ANIMALS
setServerProp "spawn-animals" "$SPAWN_ANIMALS" setServerProp "spawn-monsters" SPAWN_MONSTERS
setServerProp "spawn-monsters" "$SPAWN_MONSTERS" setServerProp "spawn-npcs" SPAWN_NPCS
setServerProp "spawn-npcs" "$SPAWN_NPCS" setServerProp "spawn-protection" SPAWN_PROTECTION
setServerProp "spawn-protection" "$SPAWN_PROTECTION" setServerProp "generate-structures" GENERATE_STRUCTURES
setServerProp "generate-structures" "$GENERATE_STRUCTURES" setServerProp "view-distance" VIEW_DISTANCE
setServerProp "view-distance" "$VIEW_DISTANCE" setServerProp "hardcore" HARDCORE
setServerProp "hardcore" "$HARDCORE" setServerProp "snooper-enabled" SNOOPER_ENABLED
setServerProp "snooper-enabled" "$SNOOPER_ENABLED" setServerProp "max-build-height" MAX_BUILD_HEIGHT
setServerProp "max-build-height" "$MAX_BUILD_HEIGHT" setServerProp "force-gamemode" FORCE_GAMEMODE
setServerProp "force-gamemode" "$FORCE_GAMEMODE" setServerProp "max-tick-time" MAX_TICK_TIME
setServerProp "max-tick-time" "$MAX_TICK_TIME" setServerProp "enable-query" ENABLE_QUERY
setServerProp "enable-query" "$ENABLE_QUERY" setServerProp "query.port" QUERY_PORT
setServerProp "query.port" "$QUERY_PORT" setServerProp "enable-rcon" ENABLE_RCON
setServerProp "enable-rcon" "$ENABLE_RCON" setServerProp "rcon.password" RCON_PASSWORD
setServerProp "rcon.password" "$RCON_PASSWORD" setServerProp "rcon.port" RCON_PORT
setServerProp "rcon.port" "$RCON_PORT" setServerProp "max-players" MAX_PLAYERS
setServerProp "max-players" "$MAX_PLAYERS" setServerProp "max-world-size" MAX_WORLD_SIZE
setServerProp "max-world-size" "$MAX_WORLD_SIZE" setServerProp "level-name" LEVEL
setServerProp "level-name" "$LEVEL" setServerProp "level-seed" SEED
setServerProp "level-seed" "$SEED" setServerProp "pvp" PVP
setServerProp "pvp" "${PVP}" setServerProp "generator-settings" GENERATOR_SETTINGS
setServerProp "generator-settings" "$GENERATOR_SETTINGS" setServerProp "online-mode" ONLINE_MODE
setServerProp "online-mode" "$ONLINE_MODE" setServerProp "allow-flight" ALLOW_FLIGHT
setServerProp "allow-flight" "$ALLOW_FLIGHT" setServerProp "resource-pack" RESOURCE_PACK
setServerProp "level-type" "${LEVEL_TYPE^^}" setServerProp "resource-pack-sha1" RESOURCE_PACK_SHA1
setServerProp "resource-pack" "$RESOURCE_PACK" setServerProp "player-idle-timeout" PLAYER_IDLE_TIMEOUT
setServerProp "resource-pack-sha1" "$RESOURCE_PACK_SHA1" setServerProp "broadcast-console-to-ops" BROADCAST_CONSOLE_TO_OPS
setServerProp "player-idle-timeout" "$PLAYER_IDLE_TIMEOUT" setServerProp "broadcast-rcon-to-ops" BROADCAST_RCON_TO_OPS
setServerProp "broadcast-console-to-ops" "$BROADCAST_CONSOLE_TO_OPS" setServerProp "enable-jmx-monitoring" ENABLE_JMX
setServerProp "broadcast-rcon-to-ops" "$BROADCAST_RCON_TO_OPS" setServerProp "sync-chunk-writes" SYNC_CHUNK_WRITES
setServerProp "enable-jmx-monitoring" "$ENABLE_JMX" setServerProp "enable-status" ENABLE_STATUS
setServerProp "sync-chunk-writes" "$SYNC_CHUNK_WRITES" setServerProp "entity-broadcast-range-percentage" ENTITY_BROADCAST_RANGE_PERCENTAGE
setServerProp "enable-status" "$ENABLE_STATUS" setServerProp "function-permission-level" FUNCTION_PERMISSION_LEVEL
setServerProp "entity-broadcast-range-percentage" "$ENTITY_BROADCAST_RANGE_PERCENTAGE" setServerProp "network-compression-threshold" NETWORK_COMPRESSION_THRESHOLD
setServerProp "function-permission-level" "$FUNCTION_PERMISSION_LEVEL" setServerProp "op-permission-level" OP_PERMISSION_LEVEL
setServerProp "network-compression-threshold" "$NETWORK_COMPRESSION_THRESHOLD" setServerProp "prevent-proxy-connections" PREVENT_PROXY_CONNECTIONS
setServerProp "op-permission-level" "$OP_PERMISSION_LEVEL" setServerProp "use-native-transport" USE_NATIVE_TRANSPORT
setServerProp "prevent-proxy-connections" "$PREVENT_PROXY_CONNECTIONS" setServerProp "enforce-whitelist" ENFORCE_WHITELIST
setServerProp "use-native-transport" "$USE_NATIVE_TRANSPORT" setServerProp "simulation-distance" SIMULATION_DISTANCE
setServerProp "enforce-whitelist" "$ENFORCE_WHITELIST" setServerPropValue "motd" "$(echo "$MOTD" | mc-image-helper asciify)"
setServerProp "simulation-distance" "$SIMULATION_DISTANCE" [[ $LEVEL_TYPE ]] && setServerPropValue "level-type" "${LEVEL_TYPE^^}"
if [ -n "$DIFFICULTY" ]; then if [ -n "$DIFFICULTY" ]; then
case $DIFFICULTY in case ${DIFFICULTY,,} in
peaceful|0) peaceful|0)
if versionLessThan 1.13; then if versionLessThan 1.13; then
DIFFICULTY=0 DIFFICULTY=0
@@ -137,13 +143,12 @@ function customizeServerProps {
exit 1 exit 1
;; ;;
esac esac
setServerProp "difficulty" "$DIFFICULTY" setServerPropValue "difficulty" "$DIFFICULTY"
fi fi
if [ -n "$MODE" ]; then if [ -n "$MODE" ]; then
log "Setting mode" log "Setting mode"
MODE_LC=$( echo $MODE | tr '[:upper:]' '[:lower:]' ) case ${MODE,,} in
case $MODE_LC in
su*|0) su*|0)
if versionLessThan 1.13; then if versionLessThan 1.13; then
MODE=0 MODE=0
@@ -177,7 +182,7 @@ function customizeServerProps {
exit 1 exit 1
;; ;;
esac esac
setServerProp "gamemode" "$MODE" setServerPropValue "gamemode" "$MODE"
fi fi
} }
@@ -210,16 +215,16 @@ fi
if isTrue "${ENABLE_AUTOPAUSE}"; then if isTrue "${ENABLE_AUTOPAUSE}"; then
current_max_tick=$( grep 'max-tick-time' "$SERVER_PROPERTIES" | sed -r 's/( )+//g' | awk -F= '{print $2}' ) current_max_tick=$( grep 'max-tick-time' "$SERVER_PROPERTIES" | sed -r 's/( )+//g' | awk -F= '{print $2}' )
if (( $current_max_tick > 0 && $current_max_tick < 86400000 )); then if (( current_max_tick > 0 && current_max_tick < 86400000 )); then
log "Warning: The server.properties for the server doesn't have the Server Watchdog (effectively) disabled." log "Warning: The server.properties for the server doesn't have the Server Watchdog (effectively) disabled."
log "Warning (cont): Autopause functionality resuming the process might trigger the Watchdog and restart the server completely." log "Warning (cont): Autopause functionality resuming the process might trigger the Watchdog and restart the server completely."
log "Warning (cont): Set the max-tick-time property to a high value (or disable the Watchdog with value -1 for versions 1.8.1+)." log "Warning (cont): Set the max-tick-time property to a high value (or disable the Watchdog with value -1 for versions 1.8.1+)."
fi fi
fi fi
if isDebugging; then if isDebugging && [ -f "${SERVER_PROPERTIES}" ]; then
log "DEBUG Dumping server.properties" log "DEBUG Dumping server.properties"
cat "${SERVER_PROPERTIES}" cat "${SERVER_PROPERTIES}"
fi fi
exec ${SCRIPTS:-/}start-setupEnvVariables $@ exec "${SCRIPTS:-/}start-setupEnvVariables" "$@"

View File

@@ -1,16 +1,14 @@
#!/bin/bash #!/bin/bash
. ${SCRIPTS:-/}start-utils # shellcheck source=start-utils
. "${SCRIPTS:-/}start-utils"
set -e set -e
isDebugging && set -x isDebugging && set -x
: ${LEVEL:=world}
export LEVEL
if [ $TYPE = "CURSEFORGE" ]; then if [ $TYPE = "CURSEFORGE" ]; then
worldDest=$FTB_DIR/$LEVEL worldDest=$FTB_DIR/${LEVEL:-world}
else else
worldDest=/data/$LEVEL worldDest=/data/${LEVEL:-world}
fi fi
if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] ); then if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] ); then
@@ -71,4 +69,4 @@ if [[ "$WORLD" ]] && ( isTrue "${FORCE_WORLD_COPY}" || [ ! -d "$worldDest" ] );
fi fi
fi fi
exec ${SCRIPTS:-/}start-setupModpack $@ exec "${SCRIPTS:-/}start-setupModpack" "$@"

View File

@@ -17,4 +17,5 @@ services:
- itzg/minecraft-server:latest - itzg/minecraft-server:latest
environment: environment:
EULA: "TRUE" EULA: "TRUE"
VERSION: "1.16.5"