mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-10-08 21:27:13 +00:00
Compare commits
44
Commits
7b1cb53cda
...
2026.5.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d375400541 | ||
|
|
d5442ddb14 | ||
|
|
f65c7f739c | ||
|
|
58781c3724 | ||
|
|
1e8aecd06e | ||
|
|
21920f3fe7 | ||
|
|
9352c45d6e | ||
|
|
3d4555557b | ||
|
|
c95b638faa | ||
|
|
fd823d6040 | ||
|
|
7656abeaa6 | ||
|
|
a708715a9f | ||
|
|
5febc1ab5d | ||
|
|
6878ad6e01 | ||
|
|
889b607606 | ||
|
|
f3b1d7ee93 | ||
|
|
cdc2c7977e | ||
|
|
14d0be9430 | ||
|
|
ffbd905ec4 | ||
|
|
b35db38cd3 | ||
|
|
32696ae457 | ||
|
|
50155230bd | ||
|
|
14c8509bee | ||
|
|
a44c717041 | ||
|
|
60ab277060 | ||
|
|
3393e65d6f | ||
|
|
4caed18ead | ||
|
|
de5e99cfa1 | ||
|
|
ff280ecf48 | ||
|
|
d34111c3e3 | ||
|
|
c660ac5e8f | ||
|
|
a383184e92 | ||
|
|
eb63433d35 | ||
|
|
5e1d166ba6 | ||
|
|
8745b36b89 | ||
|
|
97407c672f | ||
|
|
e25de5dc05 | ||
|
|
59a2126192 | ||
|
|
5e2e26831e | ||
|
|
18d57981f5 | ||
|
|
a5cd3a57fa | ||
|
|
c692e99523 | ||
|
|
5f9bc3a414 | ||
|
|
df7f067782 |
No files matched your search
@@ -13,9 +13,15 @@ updates:
|
|||||||
- minor
|
- minor
|
||||||
- package-ecosystem: pip
|
- package-ecosystem: pip
|
||||||
directory: "/docs"
|
directory: "/docs"
|
||||||
|
labels:
|
||||||
|
- dependencies
|
||||||
|
- documentation
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
groups:
|
groups:
|
||||||
|
docker:
|
||||||
|
patterns:
|
||||||
|
- "docker/*"
|
||||||
patches:
|
patches:
|
||||||
patterns:
|
patterns:
|
||||||
- "*"
|
- "*"
|
||||||
|
|||||||
+15
-11
@@ -75,24 +75,28 @@ jobs:
|
|||||||
baseImage: adoptopenjdk:16-jre-hotspot
|
baseImage: adoptopenjdk:16-jre-hotspot
|
||||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
mcVersion: 1.16.5
|
mcVersion: 1.16.5
|
||||||
|
# Pin version for pre-Java 17
|
||||||
|
mcHelperVersion: 1.51.3-java8
|
||||||
# JAVA 11
|
# JAVA 11
|
||||||
- variant: java11
|
- variant: java11
|
||||||
baseImage: adoptopenjdk:11-jre-hotspot
|
baseImage: adoptopenjdk:11-jre-hotspot
|
||||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
mcVersion: 1.16.4
|
mcVersion: 1.16.4
|
||||||
|
# Pin version for pre-Java 17
|
||||||
|
mcHelperVersion: 1.51.3-java8
|
||||||
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
|
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
|
||||||
- variant: java8
|
- variant: java8
|
||||||
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
||||||
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
platforms: linux/amd64,linux/arm/v7,linux/arm64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
# Pin version for Java 8
|
# Pin version for Java 8, also be sure to set in verify-pr.yml
|
||||||
mcHelperVersion: 1.51.1
|
mcHelperVersion: 1.51.3-java8
|
||||||
- variant: java8-jdk
|
- variant: java8-jdk
|
||||||
baseImage: eclipse-temurin:8u312-b07-jdk-focal
|
baseImage: eclipse-temurin:8u312-b07-jdk-focal
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
# Pin version for Java 8
|
# Pin version for Java 8, also be sure to set in verify-pr.yml
|
||||||
mcHelperVersion: 1.51.1
|
mcHelperVersion: 1.51.3-java8
|
||||||
env:
|
env:
|
||||||
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
|
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
|
||||||
HAS_IMAGE_REPO_ACCESS: ${{ secrets.DOCKER_USER != '' && secrets.DOCKER_PASSWORD != '' }}
|
HAS_IMAGE_REPO_ACCESS: ${{ secrets.DOCKER_USER != '' && secrets.DOCKER_PASSWORD != '' }}
|
||||||
@@ -107,7 +111,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5.10.0
|
uses: docker/metadata-action@v6.0.0
|
||||||
with:
|
with:
|
||||||
# NOTE for forks: if your Docker Hub organization doesn't match your Github repo's,
|
# NOTE for forks: if your Docker Hub organization doesn't match your Github repo's,
|
||||||
# then the use of ${{ github.repository_owner }} will need to be replaced.
|
# then the use of ${{ github.repository_owner }} will need to be replaced.
|
||||||
@@ -137,13 +141,13 @@ jobs:
|
|||||||
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.12.0
|
uses: docker/setup-buildx-action@v4.0.0
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3.7.0
|
uses: docker/setup-qemu-action@v4.0.0
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.19.2
|
uses: docker/build-push-action@v7.1.0
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: ${{ env.IMAGE_TO_TEST }}
|
tags: ${{ env.IMAGE_TO_TEST }}
|
||||||
@@ -168,14 +172,14 @@ jobs:
|
|||||||
tests/test.sh
|
tests/test.sh
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3.7.0
|
uses: docker/login-action@v4.1.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@v3.7.0
|
uses: docker/login-action@v4.1.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -183,7 +187,7 @@ jobs:
|
|||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
uses: docker/build-push-action@v6.19.2
|
uses: docker/build-push-action@v7.1.0
|
||||||
if: github.actor == github.repository_owner
|
if: github.actor == github.repository_owner
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: on-publish
|
- name: on-publish
|
||||||
if: github.event_name == 'release' && github.event.action == 'published'
|
if: github.event_name == 'release' && github.event.action == 'published'
|
||||||
uses: SethCohen/github-releases-to-discord@v1.19.0
|
uses: SethCohen/github-releases-to-discord@v1.20.0
|
||||||
with:
|
with:
|
||||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
|
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
- name: on-success
|
- name: on-success
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ jobs:
|
|||||||
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
baseImage: eclipse-temurin:8u312-b07-jre-focal
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
# Pin version for Java 8
|
# Pin version for Java 8, be sure to also set in build.yml
|
||||||
mcHelperVersion: 1.51.1
|
mcHelperVersion: 1.51.3-java8
|
||||||
env:
|
env:
|
||||||
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@@ -59,10 +59,10 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.12.0
|
uses: docker/setup-buildx-action@v4.0.0
|
||||||
|
|
||||||
- name: Confirm multi-arch build
|
- name: Confirm multi-arch build
|
||||||
uses: docker/build-push-action@v6.19.2
|
uses: docker/build-push-action@v7.1.0
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
# ensure latest base image is used
|
# ensure latest base image is used
|
||||||
@@ -73,7 +73,7 @@ jobs:
|
|||||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.19.2
|
uses: docker/build-push-action@v7.1.0
|
||||||
with:
|
with:
|
||||||
# Only build single platform since loading multi-arch image into daemon fails with
|
# Only build single platform since loading multi-arch image into daemon fails with
|
||||||
# "docker exporter does not currently support exporting manifest lists"
|
# "docker exporter does not currently support exporting manifest lists"
|
||||||
|
|||||||
+6
-6
@@ -26,36 +26,36 @@ ARG APPS_REV=1
|
|||||||
ARG GITHUB_BASEURL=https://github.com
|
ARG GITHUB_BASEURL=https://github.com
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/easy-add
|
# renovate: datasource=github-releases packageName=itzg/easy-add
|
||||||
ARG EASY_ADD_VERSION=0.8.11
|
ARG EASY_ADD_VERSION=0.8.13
|
||||||
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||||
RUN chmod +x /usr/bin/easy-add
|
RUN chmod +x /usr/bin/easy-add
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/restify
|
# renovate: datasource=github-releases packageName=itzg/restify
|
||||||
ARG RESTIFY_VERSION=1.7.12
|
ARG RESTIFY_VERSION=1.7.14
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/rcon-cli
|
# renovate: datasource=github-releases packageName=itzg/rcon-cli
|
||||||
ARG RCON_CLI_VERSION=1.7.4
|
ARG RCON_CLI_VERSION=1.7.5
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
||||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/mc-monitor
|
# renovate: datasource=github-releases packageName=itzg/mc-monitor
|
||||||
ARG MC_MONITOR_VERSION=0.16.1
|
ARG MC_MONITOR_VERSION=0.16.5
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
||||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/mc-server-runner
|
# renovate: datasource=github-releases packageName=itzg/mc-server-runner
|
||||||
ARG MC_SERVER_RUNNER_VERSION=1.14.5
|
ARG MC_SERVER_RUNNER_VERSION=1.14.7
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
||||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
||||||
ARG MC_HELPER_VERSION=1.56.1
|
ARG MC_HELPER_VERSION=1.59.1
|
||||||
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
||||||
# used for cache busting local copy of mc-image-helper
|
# used for cache busting local copy of mc-image-helper
|
||||||
ARG MC_HELPER_REV=1
|
ARG MC_HELPER_REV=1
|
||||||
|
|||||||
@@ -30,6 +30,12 @@ This image only supports Java edition natively; however, if looking for a server
|
|||||||
|
|
||||||
<br clear="left" />
|
<br clear="left" />
|
||||||
|
|
||||||
|
<a href="https://server.pro"><img src="https://server.pro/s/img/logo-short-192.png" alt="Server.pro logo" width="48" align="left" /></a>
|
||||||
|
|
||||||
|
<a href="https://server.pro"><b>Server.pro</b></a> - A game server hosting platform offering one-click Minecraft server deployment powered by <code>itzg/minecraft-server</code>, with global locations and an easy-to-use control panel.
|
||||||
|
|
||||||
|
<br clear="left" />
|
||||||
|
|
||||||
<!-- additional sponsors repeat the pattern above: floated logo + blurb + clear-left break -->
|
<!-- additional sponsors repeat the pattern above: floated logo + blurb + clear-left break -->
|
||||||
<!-- logo image preferrably hosted on an external, stable site at a size of 48x48px -->
|
<!-- logo image preferrably hosted on an external, stable site at a size of 48x48px -->
|
||||||
<!-- link to sponsor site -->
|
<!-- link to sponsor site -->
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ apk add --no-cache -U \
|
|||||||
curl \
|
curl \
|
||||||
iputils \
|
iputils \
|
||||||
git \
|
git \
|
||||||
|
git-lfs \
|
||||||
jq \
|
jq \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
tzdata \
|
tzdata \
|
||||||
@@ -46,3 +47,4 @@ cat <<EOF >> /etc/gitconfig
|
|||||||
name = Minecraft Server on Docker
|
name = Minecraft Server on Docker
|
||||||
email = server@example.com
|
email = server@example.com
|
||||||
EOF
|
EOF
|
||||||
|
git lfs install
|
||||||
@@ -46,6 +46,7 @@ dnf install -y \
|
|||||||
zstd \
|
zstd \
|
||||||
$([ "$os_major_version" -ge 10 ] && echo 'bzip2' || echo 'lbzip2') \
|
$([ "$os_major_version" -ge 10 ] && echo 'bzip2' || echo 'lbzip2') \
|
||||||
libpcap \
|
libpcap \
|
||||||
|
libcap \
|
||||||
libwebp \
|
libwebp \
|
||||||
findutils \
|
findutils \
|
||||||
which \
|
which \
|
||||||
@@ -81,3 +82,4 @@ cat <<EOF >> /etc/gitconfig
|
|||||||
name = Minecraft Server on Docker
|
name = Minecraft Server on Docker
|
||||||
email = server@example.com
|
email = server@example.com
|
||||||
EOF
|
EOF
|
||||||
|
git lfs install
|
||||||
@@ -16,6 +16,7 @@ apt-get install -y \
|
|||||||
iputils-ping \
|
iputils-ping \
|
||||||
curl \
|
curl \
|
||||||
git \
|
git \
|
||||||
|
git-lfs \
|
||||||
jq \
|
jq \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
@@ -28,13 +29,9 @@ apt-get install -y \
|
|||||||
nfs-common \
|
nfs-common \
|
||||||
libpcap0.8 \
|
libpcap0.8 \
|
||||||
libnuma1 \
|
libnuma1 \
|
||||||
|
libcap2-bin \
|
||||||
${EXTRA_DEB_PACKAGES}
|
${EXTRA_DEB_PACKAGES}
|
||||||
|
|
||||||
# Install Git LFS
|
|
||||||
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y git-lfs
|
|
||||||
|
|
||||||
# Clean up APT when done
|
# Clean up APT when done
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
@@ -51,3 +48,4 @@ cat <<EOF >> /etc/gitconfig
|
|||||||
name = Minecraft Server on Docker
|
name = Minecraft Server on Docker
|
||||||
email = server@example.com
|
email = server@example.com
|
||||||
EOF
|
EOF
|
||||||
|
git lfs install
|
||||||
@@ -22,6 +22,12 @@ docker run -d --pull=always \
|
|||||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Clean server libraries
|
||||||
|
|
||||||
|
By default, supported server types remove stale server libraries during installation by setting `CLEAN_SERVER_LIBRARIES` to `true`. Set `CLEAN_SERVER_LIBRARIES` to `false` to disable this cleanup if it causes unexpected behavior.
|
||||||
|
|
||||||
|
Currently, library cleanup is supported by `TYPE=PAPER`. Other server jar types are not yet supported.
|
||||||
|
|
||||||
## Running as alternate user/group ID
|
## Running as alternate user/group ID
|
||||||
|
|
||||||
By default, the container will switch to and run the Minecraft server as user ID 1000 and group ID 1000; however, that can be changed by setting the environment variables `UID` and `GID`.
|
By default, the container will switch to and run the Minecraft server as user ID 1000 and group ID 1000; however, that can be changed by setting the environment variables `UID` and `GID`.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ An option to stop the server after a specified time has been added for niche app
|
|||||||
|
|
||||||
A `.skip-stop` file can be created in the `/data` directory to make the server skip autostopping, for as long as the file is present. The autostop timer will also be reset.
|
A `.skip-stop` file can be created in the `/data` directory to make the server skip autostopping, for as long as the file is present. The autostop timer will also be reset.
|
||||||
|
|
||||||
A starting, example compose file has been provided in [examples/docker-compose-autostop.yml](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-autostop.yml).
|
A starting, example compose file has been provided in [examples/autostop/compose.yml](https://github.com/itzg/docker-minecraft-server/blob/master/examples/autostop/compose.yml).
|
||||||
|
|
||||||
Enable the Autostop functionality by setting:
|
Enable the Autostop functionality by setting:
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,13 @@ These paths work well if you want to have a common set of modules in a separate
|
|||||||
|
|
||||||
You can download/copy additional configuration files or other resources before the server starts by using the `APPLY_EXTRA_FILES` environment variable. This is useful for downloading configs that you want to patch or modify during the startup process.
|
You can download/copy additional configuration files or other resources before the server starts by using the `APPLY_EXTRA_FILES` environment variable. This is useful for downloading configs that you want to patch or modify during the startup process.
|
||||||
|
|
||||||
The format uses a `<` separator between the destination path and the source URL/path. The destination path is relative to the `/data` directory. If specifying a source path, it needs to be path mounted within the container.
|
The format uses a `<` separator between the destination path and the source URL/path.
|
||||||
|
|
||||||
|
The destination path is relative to the `/data` directory.
|
||||||
|
|
||||||
|
If specifying a source path, rather than URL, it needs to reference a path mounted into the container as a volume.
|
||||||
|
|
||||||
|
A source path can refer to a directory, in which case the files within that directory will be copied into the destination directory. At startup, it will take care of synchronizing the removal of files it copied when they are removed from the source.
|
||||||
|
|
||||||
!!! example
|
!!! example
|
||||||
|
|
||||||
@@ -150,6 +156,54 @@ Disabling mods within docker compose files:
|
|||||||
mod2.jar
|
mod2.jar
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Loading container configuration from a pack
|
||||||
|
|
||||||
|
A pack can ship its own container configuration so that the server type, version,
|
||||||
|
and other variables travel with the pack rather than being declared by the user.
|
||||||
|
At startup, before `TYPE` is dispatched, the container can load environment
|
||||||
|
variables from a file on disk, a URL, an entry inside an archive, or from the
|
||||||
|
`.env` of each `GENERIC_PACK(S)` entry.
|
||||||
|
|
||||||
|
- `LOAD_ENV_FROM_GENERIC_PACK`: when `true`, each entry in `GENERIC_PACKS` (after
|
||||||
|
`GENERIC_PACKS_PREFIX`/`SUFFIX` expansion) is probed for a top-level `.env`
|
||||||
|
and each one found is sourced in the same order the packs are applied (later
|
||||||
|
packs override earlier ones, matching the layering of the unpack itself). Packs
|
||||||
|
without a `.env` are skipped without error. URLs are downloaded into
|
||||||
|
`/data/packs/` and reused by the regular generic-pack unpack step, so they are
|
||||||
|
not fetched twice.
|
||||||
|
- `LOAD_ENV_FROM_FILE`: container path or URL of a shell-style env file (one
|
||||||
|
`KEY=VALUE` per line). Comments and blank lines are allowed.
|
||||||
|
- `LOAD_ENV_FROM_ARCHIVE`: container path or URL of a zip/tar archive containing
|
||||||
|
an env file. The entry is sourced into the environment.
|
||||||
|
- `LOAD_ENV_FROM_ARCHIVE_ENTRY`: relative path of the env file inside the archive.
|
||||||
|
Defaults to `.env`.
|
||||||
|
|
||||||
|
These can be combined. Load order is: generic packs first, then
|
||||||
|
`LOAD_ENV_FROM_FILE`, then `LOAD_ENV_FROM_ARCHIVE` — later loads override
|
||||||
|
earlier ones, and all of them **override** values passed via `docker run -e` (or
|
||||||
|
compose `environment:`), so the pack's declared values win.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
-e EULA=TRUE \
|
||||||
|
-e GENERIC_PACK=https://cdn.example.org/my-pack.zip \
|
||||||
|
-e LOAD_ENV_FROM_GENERIC_PACK=true \
|
||||||
|
itzg/minecraft-server
|
||||||
|
```
|
||||||
|
|
||||||
|
Where `my-pack.zip` contains a `.env` at its root such as:
|
||||||
|
|
||||||
|
```env
|
||||||
|
TYPE=FABRIC
|
||||||
|
VERSION=1.21.1
|
||||||
|
FABRIC_LOADER_VERSION=0.16.0
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! warning
|
||||||
|
The env file is sourced by `bash`, so any shell syntax it contains will be
|
||||||
|
evaluated. Only point these variables at sources you trust. `EULA` cannot be
|
||||||
|
set this way — it is checked before the env file is loaded.
|
||||||
|
|
||||||
## Mods/plugins list
|
## Mods/plugins list
|
||||||
|
|
||||||
You may also download or copy over individual mods/plugins using the `MODS` or `PLUGINS` environment variables. Both are a comma or newline delimited list of
|
You may also download or copy over individual mods/plugins using the `MODS` or `PLUGINS` environment variables. Both are a comma or newline delimited list of
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
click==8.3.2
|
click==8.3.3
|
||||||
colorama==0.4.6
|
colorama==0.4.6
|
||||||
deepmerge==2.0
|
deepmerge==2.0
|
||||||
ghp-import==2.1.0
|
ghp-import==2.1.0
|
||||||
@@ -10,16 +10,16 @@ mergedeep==1.3.4
|
|||||||
mkdocs==1.6.1
|
mkdocs==1.6.1
|
||||||
mkdocs-autorefs==1.4.4
|
mkdocs-autorefs==1.4.4
|
||||||
mkdocs-get-deps==0.2.2
|
mkdocs-get-deps==0.2.2
|
||||||
mkdocstrings==1.0.3
|
mkdocstrings==1.0.4
|
||||||
mkdocstrings-python==2.0.3
|
mkdocstrings-python==2.0.3
|
||||||
packaging==26.0
|
packaging==26.2
|
||||||
pathspec==1.0.4
|
pathspec==1.1.1
|
||||||
platformdirs==4.9.4
|
platformdirs==4.9.6
|
||||||
Pygments==2.20.0
|
Pygments==2.20.0
|
||||||
pymdown-extensions==10.21.2
|
pymdown-extensions==10.21.3
|
||||||
python-dateutil==2.9.0.post0
|
python-dateutil==2.9.0.post0
|
||||||
PyYAML==6.0.3
|
PyYAML==6.0.3
|
||||||
pyyaml_env_tag==1.1
|
pyyaml_env_tag==1.1
|
||||||
six==1.17.0
|
six==1.17.0
|
||||||
watchdog==6.0.0
|
watchdog==6.0.0
|
||||||
zensical==0.0.31
|
zensical==0.0.41
|
||||||
@@ -18,7 +18,7 @@ The desired modpack project is specified with the `MODRINTH_MODPACK` environment
|
|||||||
|
|
||||||
- A custom URL of a hosted [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack)
|
- A custom URL of a hosted [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack)
|
||||||
|
|
||||||
- The container path to a local [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack)
|
- The container path to a local [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack). The file name **must have the `.mrpack` extension** in order to be correctly detected as a local file.
|
||||||
|
|
||||||
## Modpack version
|
## Modpack version
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ services:
|
|||||||
VANILLATWEAKS_FILE: /config/vanillatweaks-datapacks.json
|
VANILLATWEAKS_FILE: /config/vanillatweaks-datapacks.json
|
||||||
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
||||||
volumes:
|
volumes:
|
||||||
- data:/data
|
|
||||||
- ./vanillatweaks-datapacks.json:/config/vanillatweaks-datapacks.json:ro
|
- ./vanillatweaks-datapacks.json:/config/vanillatweaks-datapacks.json:ro
|
||||||
vanillatweaks_sharecode:
|
vanillatweaks_sharecode:
|
||||||
# port is set to 25566 to not conflict with vanillatweaks_file example
|
# port is set to 25566 to not conflict with vanillatweaks_file example
|
||||||
@@ -35,7 +34,6 @@ services:
|
|||||||
VANILLATWEAKS_FILE: /config/vanillatweaks-datapacks.json,/config/vanillatweaks-resourcepacks.json,/config/vanillatweaks-craftingtweaks.json
|
VANILLATWEAKS_FILE: /config/vanillatweaks-datapacks.json,/config/vanillatweaks-resourcepacks.json,/config/vanillatweaks-craftingtweaks.json
|
||||||
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
REMOVE_OLD_VANILLATWEAKS: "TRUE"
|
||||||
volumes:
|
volumes:
|
||||||
- data:/data
|
|
||||||
- ./vanillatweaks-datapacks.json:/config/vanillatweaks-datapacks.json:ro
|
- ./vanillatweaks-datapacks.json:/config/vanillatweaks-datapacks.json:ro
|
||||||
- ./vanillatweaks-resourcepacks.json:/config/vanillatweaks-resourcepacks.json:ro
|
- ./vanillatweaks-resourcepacks.json:/config/vanillatweaks-resourcepacks.json:ro
|
||||||
- ./vanillatweaks-craftingtweaks.json:/config/vanillatweaks-craftingtweaks.json:ro
|
- ./vanillatweaks-craftingtweaks.json:/config/vanillatweaks-craftingtweaks.json:ro
|
||||||
@@ -212,6 +212,11 @@
|
|||||||
},
|
},
|
||||||
"valhelsia-5": {
|
"valhelsia-5": {
|
||||||
"excludes": ["modernfix"]
|
"excludes": ["modernfix"]
|
||||||
|
},
|
||||||
|
"wolds-vaults": {
|
||||||
|
"forceIncludes": [
|
||||||
|
"just-enough-resources-jer"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,6 @@
|
|||||||
"AmbientSounds",
|
"AmbientSounds",
|
||||||
"amecs",
|
"amecs",
|
||||||
"Animation_Overhaul",
|
"Animation_Overhaul",
|
||||||
"appleskin",
|
|
||||||
"auudio",
|
"auudio",
|
||||||
"axolotlbuckets",
|
"axolotlbuckets",
|
||||||
"BadOptimizations",
|
"BadOptimizations",
|
||||||
@@ -28,7 +27,6 @@
|
|||||||
"compass-coords",
|
"compass-coords",
|
||||||
"colorwheel",
|
"colorwheel",
|
||||||
"connectedness",
|
"connectedness",
|
||||||
"connector",
|
|
||||||
"continuity",
|
"continuity",
|
||||||
"controlling",
|
"controlling",
|
||||||
"craftpresence",
|
"craftpresence",
|
||||||
@@ -39,8 +37,6 @@
|
|||||||
"distraction_free_recipes",
|
"distraction_free_recipes",
|
||||||
"drippyloadingscreen",
|
"drippyloadingscreen",
|
||||||
"eating-animation",
|
"eating-animation",
|
||||||
"emi",
|
|
||||||
"emi_loot",
|
|
||||||
"emi_trade",
|
"emi_trade",
|
||||||
"emiffect",
|
"emiffect",
|
||||||
"emitrades",
|
"emitrades",
|
||||||
|
|||||||
@@ -152,6 +152,31 @@ fi
|
|||||||
|
|
||||||
cd /data || exit 1
|
cd /data || exit 1
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# Optionally load environment variables from a file or archive entry,
|
||||||
|
# allowing packs/artifacts to declare TYPE, VERSION and other settings
|
||||||
|
# inside-out. Loaded values override anything passed in through docker -e.
|
||||||
|
# Generic packs are processed first so that LOAD_ENV_FROM_FILE and
|
||||||
|
# LOAD_ENV_FROM_ARCHIVE can override any values they set.
|
||||||
|
|
||||||
|
if isTrue "${LOAD_ENV_FROM_GENERIC_PACK:-false}"; then
|
||||||
|
if ! loadEnvFromGenericPack; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${LOAD_ENV_FROM_FILE:-} ]]; then
|
||||||
|
if ! loadEnvFromFile "${LOAD_ENV_FROM_FILE}"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${LOAD_ENV_FROM_ARCHIVE:-} ]]; then
|
||||||
|
if ! loadEnvFromArchive "${LOAD_ENV_FROM_ARCHIVE}" "${LOAD_ENV_FROM_ARCHIVE_ENTRY:-.env}"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
export DECLARED_TYPE=${TYPE^^}
|
export DECLARED_TYPE=${TYPE^^}
|
||||||
export DECLARED_VERSION="$VERSION"
|
export DECLARED_VERSION="$VERSION"
|
||||||
|
|
||||||
|
|||||||
@@ -11,17 +11,26 @@ handleDebugMode
|
|||||||
: "${PAPER_DOWNLOAD_URL:=}"
|
: "${PAPER_DOWNLOAD_URL:=}"
|
||||||
: "${PAPER_CUSTOM_JAR:=}"
|
: "${PAPER_CUSTOM_JAR:=}"
|
||||||
: "${PAPER_CONFIG_DEFAULTS_REPO:=${PAPER_CONFIG_REPO:=https://raw.githubusercontent.com/Shonz1/minecraft-default-configs/main}}"
|
: "${PAPER_CONFIG_DEFAULTS_REPO:=${PAPER_CONFIG_REPO:=https://raw.githubusercontent.com/Shonz1/minecraft-default-configs/main}}"
|
||||||
|
: "${CLEAN_SERVER_LIBRARIES:=true}"
|
||||||
|
|
||||||
resultsFile=/data/.paper.env
|
resultsFile=/data/.paper.env
|
||||||
if [[ $PAPER_CUSTOM_JAR ]]; then
|
if [[ $PAPER_CUSTOM_JAR ]]; then
|
||||||
export SERVER="$PAPER_CUSTOM_JAR"
|
export SERVER="$PAPER_CUSTOM_JAR"
|
||||||
elif [[ $PAPER_DOWNLOAD_URL ]]; then
|
elif [[ $PAPER_DOWNLOAD_URL ]]; then
|
||||||
if ! mc-image-helper install-paper \
|
|
||||||
--output-directory=/data \
|
args=(
|
||||||
--results-file="$resultsFile" \
|
--output-directory=/data
|
||||||
--url="$PAPER_DOWNLOAD_URL"; then
|
--results-file="$resultsFile"
|
||||||
logError "Failed to download from custom PaperMC URL"
|
--url="$PAPER_DOWNLOAD_URL"
|
||||||
exit 1
|
)
|
||||||
|
|
||||||
|
if [[ $CLEAN_SERVER_LIBRARIES ]]; then
|
||||||
|
args+=(--clean-libraries)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! mc-image-helper install-paper "${args[@]}"; then
|
||||||
|
logError "Failed to download from custom PaperMC URL"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
applyResultsFile ${resultsFile}
|
applyResultsFile ${resultsFile}
|
||||||
else
|
else
|
||||||
@@ -35,6 +44,11 @@ else
|
|||||||
if [[ $PAPER_BUILD ]]; then
|
if [[ $PAPER_BUILD ]]; then
|
||||||
args+=(--build="$PAPER_BUILD")
|
args+=(--build="$PAPER_BUILD")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $CLEAN_SERVER_LIBRARIES ]]; then
|
||||||
|
args+=(--clean-libraries)
|
||||||
|
fi
|
||||||
|
|
||||||
if ! mc-image-helper install-paper "${args[@]}"; then
|
if ! mc-image-helper install-paper "${args[@]}"; then
|
||||||
logError "Failed to download $PAPER_PROJECT"
|
logError "Failed to download $PAPER_PROJECT"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
+116
-3
@@ -26,6 +26,117 @@ function applyResultsFile() {
|
|||||||
set +a
|
set +a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadEnvFromFile() {
|
||||||
|
local source=${1?Missing required source argument}
|
||||||
|
local downloaded=
|
||||||
|
|
||||||
|
if isURL "$source"; then
|
||||||
|
mkdir -p /data/.tmp
|
||||||
|
downloaded=$(mktemp -p /data/.tmp)
|
||||||
|
log "Downloading env file from $source"
|
||||||
|
if ! get -o "$downloaded" "$source"; then
|
||||||
|
logError "Failed to download env file from $source"
|
||||||
|
rm -f "$downloaded"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
log "Loading env vars from $source"
|
||||||
|
applyResultsFile "$downloaded"
|
||||||
|
rm -f "$downloaded"
|
||||||
|
elif [ -f "$source" ]; then
|
||||||
|
log "Loading env vars from $source"
|
||||||
|
applyResultsFile "$source"
|
||||||
|
else
|
||||||
|
logError "Env file not found: $source"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadEnvFromArchive() {
|
||||||
|
local source=${1?Missing required source argument}
|
||||||
|
local entry=${2:-.env}
|
||||||
|
local archive=
|
||||||
|
local downloaded=
|
||||||
|
local tmpdir
|
||||||
|
local rc=0
|
||||||
|
|
||||||
|
mkdir -p /data/.tmp
|
||||||
|
|
||||||
|
if isURL "$source"; then
|
||||||
|
downloaded=$(mktemp -p /data/.tmp)
|
||||||
|
log "Downloading archive from $source"
|
||||||
|
if ! get -o "$downloaded" "$source"; then
|
||||||
|
logError "Failed to download archive from $source"
|
||||||
|
rm -f "$downloaded"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
archive=$downloaded
|
||||||
|
elif [ -f "$source" ]; then
|
||||||
|
archive=$source
|
||||||
|
else
|
||||||
|
logError "Archive not found: $source"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpdir=$(mktemp -d -p /data/.tmp)
|
||||||
|
if extract "$archive" "$tmpdir" "$entry" && [ -f "$tmpdir/$entry" ]; then
|
||||||
|
log "Loading env vars from '$entry' in $source"
|
||||||
|
applyResultsFile "$tmpdir/$entry"
|
||||||
|
else
|
||||||
|
logError "Failed to load env entry '$entry' from $source"
|
||||||
|
rc=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$tmpdir"
|
||||||
|
[[ -n "$downloaded" ]] && rm -f "$downloaded"
|
||||||
|
return $rc
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadEnvFromGenericPack() {
|
||||||
|
: "${GENERIC_PACKS:=${GENERIC_PACK:-}}"
|
||||||
|
: "${GENERIC_PACKS_PREFIX:=}"
|
||||||
|
: "${GENERIC_PACKS_SUFFIX:=}"
|
||||||
|
|
||||||
|
if [[ -z "${GENERIC_PACKS}" ]]; then
|
||||||
|
logWarning "LOAD_ENV_FROM_GENERIC_PACK is set but GENERIC_PACK(S) is empty"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p /data/.tmp
|
||||||
|
IFS=',' read -ra packs <<< "${GENERIC_PACKS}"
|
||||||
|
local loaded=0
|
||||||
|
local pack packEntry packFile tmpdir
|
||||||
|
for packEntry in "${packs[@]}"; do
|
||||||
|
pack="${GENERIC_PACKS_PREFIX}${packEntry}${GENERIC_PACKS_SUFFIX}"
|
||||||
|
if isURL "$pack"; then
|
||||||
|
mkdir -p /data/packs
|
||||||
|
if ! packFile=$(get -o /data/packs --output-filename --skip-up-to-date "$pack"); then
|
||||||
|
logError "Failed to download generic pack $pack"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
packFile=$pack
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$packFile" ]]; then
|
||||||
|
logError "Generic pack not found: $packFile"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpdir=$(mktemp -d -p /data/.tmp)
|
||||||
|
# Packs without a .env are valid — silently skip; the unpack step still applies them.
|
||||||
|
if extract "$packFile" "$tmpdir" .env 2>/dev/null && [ -f "$tmpdir/.env" ]; then
|
||||||
|
log "Loading env vars from .env in $pack"
|
||||||
|
applyResultsFile "$tmpdir/.env"
|
||||||
|
loaded=$((loaded + 1))
|
||||||
|
fi
|
||||||
|
rm -rf "$tmpdir"
|
||||||
|
done
|
||||||
|
|
||||||
|
if (( loaded == 0 )); then
|
||||||
|
logWarning "LOAD_ENV_FROM_GENERIC_PACK is set but no pack in GENERIC_PACK(S) contained a .env"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function join_by() {
|
function join_by() {
|
||||||
local d=$1
|
local d=$1
|
||||||
shift
|
shift
|
||||||
@@ -445,17 +556,19 @@ function isType() {
|
|||||||
function extract() {
|
function extract() {
|
||||||
src=${1?}
|
src=${1?}
|
||||||
destDir=${2?}
|
destDir=${2?}
|
||||||
|
shift 2
|
||||||
|
# remaining args are paths within the archive to extract; if none, extract everything
|
||||||
|
|
||||||
type=$(file -b --mime-type "${src}")
|
type=$(file -b --mime-type "${src}")
|
||||||
case "${type}" in
|
case "${type}" in
|
||||||
application/zip)
|
application/zip)
|
||||||
unzip -o -q -d "${destDir}" "${src}"
|
unzip -o -q -d "${destDir}" "${src}" "$@"
|
||||||
;;
|
;;
|
||||||
application/x-tar | application/gzip | application/x-gzip | application/x-bzip2)
|
application/x-tar | application/gzip | application/x-gzip | application/x-bzip2)
|
||||||
tar -C "${destDir}" -xf "${src}"
|
tar -C "${destDir}" -xf "${src}" "$@"
|
||||||
;;
|
;;
|
||||||
application/zstd | application/x-zstd)
|
application/zstd | application/x-zstd)
|
||||||
tar -C "${destDir}" --use-compress-program=unzstd -xf "${src}"
|
tar -C "${destDir}" --use-compress-program=unzstd -xf "${src}" "$@"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
logError "Unsupported archive type: $type"
|
logError "Unsupported archive type: $type"
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
SETUP_ONLY: "true"
|
||||||
|
LOAD_ENV_FROM_ARCHIVE: /test/load-env.zip
|
||||||
|
MOTD: from-compose
|
||||||
|
LOG_TIMESTAMP: "true"
|
||||||
|
DEBUG: "true"
|
||||||
|
# the following are only used to speed up test execution
|
||||||
|
TYPE: CUSTOM
|
||||||
|
CUSTOM_SERVER: /servers/fake.jar
|
||||||
|
VERSION: 1.18.1
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./load-env.zip:/test/load-env.zip
|
||||||
|
- ./fake.jar:/servers/fake.jar
|
||||||
Whitespace-only changes.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
mc-image-helper assert propertyEquals --file=server.properties --property=motd --expect=from-archive
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
SETUP_ONLY: "true"
|
||||||
|
LOAD_ENV_FROM_FILE: /test/load-env.env
|
||||||
|
MOTD: from-compose
|
||||||
|
LOG_TIMESTAMP: "true"
|
||||||
|
DEBUG: "true"
|
||||||
|
# the following are only used to speed up test execution
|
||||||
|
TYPE: CUSTOM
|
||||||
|
CUSTOM_SERVER: /servers/fake.jar
|
||||||
|
VERSION: 1.18.1
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./load-env.env:/test/load-env.env
|
||||||
|
- ./fake.jar:/servers/fake.jar
|
||||||
Whitespace-only changes.
@@ -0,0 +1,2 @@
|
|||||||
|
# Loaded by LOAD_ENV_FROM_FILE during start-configuration
|
||||||
|
MOTD=from-env-file
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
mc-image-helper assert propertyEquals --file=server.properties --property=motd --expect=from-env-file
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
SETUP_ONLY: "true"
|
||||||
|
GENERIC_PACK: /packs/pack.zip
|
||||||
|
LOAD_ENV_FROM_GENERIC_PACK: "true"
|
||||||
|
MOTD: from-compose
|
||||||
|
LOG_TIMESTAMP: "true"
|
||||||
|
DEBUG: "true"
|
||||||
|
# the following are only used to speed up test execution
|
||||||
|
TYPE: CUSTOM
|
||||||
|
CUSTOM_SERVER: /servers/fake.jar
|
||||||
|
VERSION: 1.18.1
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./pack.zip:/packs/pack.zip
|
||||||
|
- ./fake.jar:/servers/fake.jar
|
||||||
Whitespace-only changes.
Binary file not shown.
@@ -0,0 +1,2 @@
|
|||||||
|
mc-image-helper assert propertyEquals --file=server.properties --property=motd --expect=from-generic-pack
|
||||||
|
mc-image-helper assert fileExists config/dummy.yml
|
||||||
Reference in new issue
Block a user