mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-05-06 03:55:24 +00:00
Compare commits
45 Commits
2026.3.0
...
itzg-patch-4
| Author | SHA1 | Date | |
|---|---|---|---|
| 934cc8a0b0 | |||
| ff280ecf48 | |||
| d34111c3e3 | |||
| c660ac5e8f | |||
| a383184e92 | |||
| eb63433d35 | |||
| 5e1d166ba6 | |||
| 8745b36b89 | |||
| 97407c672f | |||
| e25de5dc05 | |||
| 59a2126192 | |||
| 5e2e26831e | |||
| 18d57981f5 | |||
| a5cd3a57fa | |||
| c692e99523 | |||
| 5f9bc3a414 | |||
| df7f067782 | |||
| 7b1cb53cda | |||
| dcfedaa10f | |||
| a9a27df4a6 | |||
| a2fbd4ce9a | |||
| eb4fe3c7bf | |||
| 8c9e2c653f | |||
| bd98fe57ba | |||
| 23205471db | |||
| f8618a5360 | |||
| acc90757a6 | |||
| 589872049f | |||
| 18403e7db8 | |||
| 2625ca2b3c | |||
| 5b9c09b7b2 | |||
| b37c2cc3ef | |||
| 3cd3656868 | |||
| 387c674849 | |||
| fba656561f | |||
| cf8ab31e25 | |||
| 68bb650617 | |||
| c5a298fa05 | |||
| 5dff0b8541 | |||
| 9c9a3a8b43 | |||
| 3bbe3b7c80 | |||
| ddb3dbf776 | |||
| 1cf70665bb | |||
| a543ee7ebc | |||
| a69017b5e1 |
@@ -13,9 +13,15 @@ updates:
|
||||
- minor
|
||||
- package-ecosystem: pip
|
||||
directory: "/docs"
|
||||
labels:
|
||||
- dependencies
|
||||
- documentation
|
||||
schedule:
|
||||
interval: weekly
|
||||
groups:
|
||||
docker:
|
||||
patterns:
|
||||
- "docker/*"
|
||||
patches:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
+15
-10
@@ -27,6 +27,7 @@ jobs:
|
||||
# NOTE: the "latest" variant is identified in the Docker meta step's 'latest' config
|
||||
variant:
|
||||
- java25
|
||||
- java25-alpine
|
||||
- java25-jdk
|
||||
- java21
|
||||
- java21-alpine
|
||||
@@ -42,6 +43,10 @@ jobs:
|
||||
baseImage: eclipse-temurin:25-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
- variant: java25-alpine
|
||||
baseImage: eclipse-temurin:25-jre-alpine
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
- variant: java25-jdk
|
||||
baseImage: eclipse-temurin:25
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@@ -50,15 +55,15 @@ jobs:
|
||||
- variant: java21
|
||||
baseImage: eclipse-temurin:21-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
mcVersion: 1.21.11
|
||||
- variant: java21-jdk
|
||||
baseImage: eclipse-temurin:21
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
mcVersion: 1.21.11
|
||||
- variant: java21-alpine
|
||||
baseImage: eclipse-temurin:21-jre-alpine
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
mcVersion: 1.21.11
|
||||
# JAVA 17:
|
||||
- variant: java17
|
||||
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
|
||||
@@ -102,7 +107,7 @@ jobs:
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5.10.0
|
||||
uses: docker/metadata-action@v6.0.0
|
||||
with:
|
||||
# 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.
|
||||
@@ -132,13 +137,13 @@ jobs:
|
||||
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.12.0
|
||||
uses: docker/setup-buildx-action@v4.0.0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.7.0
|
||||
uses: docker/setup-qemu-action@v4.0.0
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v6.19.2
|
||||
uses: docker/build-push-action@v7.1.0
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
@@ -163,14 +168,14 @@ jobs:
|
||||
tests/test.sh
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.7.0
|
||||
uses: docker/login-action@v4.1.0
|
||||
if: env.HAS_IMAGE_REPO_ACCESS
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@v3.7.0
|
||||
uses: docker/login-action@v4.1.0
|
||||
if: env.HAS_IMAGE_REPO_ACCESS
|
||||
with:
|
||||
registry: ghcr.io
|
||||
@@ -178,7 +183,7 @@ jobs:
|
||||
password: ${{ github.token }}
|
||||
|
||||
- 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
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
steps:
|
||||
- name: on-publish
|
||||
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:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
- name: on-success
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
matrix:
|
||||
variant:
|
||||
- java25
|
||||
- java21-alpine
|
||||
- java25-alpine
|
||||
- java17
|
||||
- java8
|
||||
include:
|
||||
@@ -32,8 +32,8 @@ jobs:
|
||||
baseImage: eclipse-temurin:25-jre
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
- variant: java21-alpine
|
||||
baseImage: eclipse-temurin:21-jre-alpine
|
||||
- variant: java25-alpine
|
||||
baseImage: eclipse-temurin:25-jre-alpine
|
||||
platforms: linux/amd64,linux/arm64
|
||||
mcVersion: latest
|
||||
# JAVA 17:
|
||||
@@ -59,10 +59,10 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- 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
|
||||
uses: docker/build-push-action@v6.19.2
|
||||
uses: docker/build-push-action@v7.1.0
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
# ensure latest base image is used
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v6.19.2
|
||||
uses: docker/build-push-action@v7.1.0
|
||||
with:
|
||||
# Only build single platform since loading multi-arch image into daemon fails with
|
||||
# "docker exporter does not currently support exporting manifest lists"
|
||||
|
||||
+2
-6
@@ -1,19 +1,15 @@
|
||||
version: 2
|
||||
|
||||
python:
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
|
||||
build:
|
||||
os: ubuntu-24.04
|
||||
tools:
|
||||
python: latest
|
||||
python: "3.14"
|
||||
jobs:
|
||||
# We recommend using a requirements file for reproducible builds.
|
||||
# This is just a quick example to get started.
|
||||
# https://docs.readthedocs.io/page/guides/reproducible-builds.html
|
||||
install:
|
||||
- pip install zensical
|
||||
- pip install -r docs/requirements.txt
|
||||
build:
|
||||
html:
|
||||
- zensical build
|
||||
|
||||
+4
-4
@@ -31,13 +31,13 @@ ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-a
|
||||
RUN chmod +x /usr/bin/easy-add
|
||||
|
||||
# renovate: datasource=github-releases packageName=itzg/restify
|
||||
ARG RESTIFY_VERSION=1.7.12
|
||||
ARG RESTIFY_VERSION=1.7.13
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
# renovate: datasource=github-releases packageName=itzg/rcon-cli
|
||||
ARG RCON_CLI_VERSION=1.7.3
|
||||
ARG RCON_CLI_VERSION=1.7.4
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--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
|
||||
@@ -49,13 +49,13 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
# renovate: datasource=github-releases packageName=itzg/mc-server-runner
|
||||
ARG MC_SERVER_RUNNER_VERSION=1.14.1
|
||||
ARG MC_SERVER_RUNNER_VERSION=1.14.5
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--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
|
||||
|
||||
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
||||
ARG MC_HELPER_VERSION=1.55.2
|
||||
ARG MC_HELPER_VERSION=1.56.3
|
||||
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
|
||||
ARG MC_HELPER_REV=1
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[](https://www.buymeacoffee.com/itzg)
|
||||
[](https://docker-minecraft-server.readthedocs.io/en/latest/?badge=latest)
|
||||
|
||||
[](https://docker-minecraft-server.readthedocs.io/)
|
||||
[](https://docker-minecraft-server.readthedocs.io/)
|
||||
|
||||
There you will find things like
|
||||
- [Quick start with Docker Compose](https://docker-minecraft-server.readthedocs.io/en/latest/#using-docker-compose)
|
||||
@@ -19,3 +19,26 @@ There you will find things like
|
||||
There are also many examples located in [the examples directory](examples) of this repo.
|
||||
|
||||
This image only supports Java edition natively; however, if looking for a server that is compatible with Bedrock edition, then use [itzg/minecraft-bedrock-server](https://github.com/itzg/docker-minecraft-bedrock-server) or [refer to this section](https://docker-minecraft-server.readthedocs.io/en/latest/misc/examples/#bedrock-compatible-server) to add Bedrock compatibility to a Java edition server.
|
||||
|
||||
[](#sponsors)
|
||||
|
||||
<a name="sponsors"></a>
|
||||
|
||||
<a href="https://spawnbox.app"><img src="https://spawnbox.app/favicon-48x48.png" alt="SpawnBox logo" width="48" align="left" /></a>
|
||||
|
||||
<a href="https://spawnbox.app"><b>SpawnBox</b></a> - Powered by <code>itzg/minecraft-server</code>, it's a Windows desktop app for parents, teens, and friend groups who want a Minecraft server on their own PC without learning Docker, WSL2, or networking.
|
||||
|
||||
<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 -->
|
||||
<!-- logo image preferrably hosted on an external, stable site at a size of 48x48px -->
|
||||
<!-- link to sponsor site -->
|
||||
<!-- one or two line summary ideally with a mention of image integration -->
|
||||
|
||||
[and more...](https://github.com/sponsors/itzg)
|
||||
|
||||
@@ -31,6 +31,7 @@ apk add --no-cache -U \
|
||||
libpcap \
|
||||
libwebp \
|
||||
libcap \
|
||||
numactl \
|
||||
${EXTRA_ALPINE_PACKAGES}
|
||||
|
||||
# Download and install patched knockd
|
||||
|
||||
@@ -27,6 +27,7 @@ apt-get install -y \
|
||||
lbzip2 \
|
||||
nfs-common \
|
||||
libpcap0.8 \
|
||||
libnuma1 \
|
||||
${EXTRA_DEB_PACKAGES}
|
||||
|
||||
# Install Git LFS
|
||||
|
||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -6,7 +6,7 @@ Small, none, Minecraftia
|
||||
|
||||
Line 2:
|
||||
"Documentation"
|
||||
Large, non, Minecrafter
|
||||
Large, none, Minecrafter
|
||||
|
||||
Overall settings:
|
||||
- drop shadow
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,9 @@
|
||||
Generated at https://textcraft.net/
|
||||
|
||||
Line 1:
|
||||
"Sponsors"
|
||||
Mid
|
||||
None
|
||||
Minecrafter
|
||||
Drop shadow
|
||||
3d-style view
|
||||
@@ -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 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:
|
||||
|
||||
|
||||
@@ -1,4 +1,84 @@
|
||||
|
||||
## Simple image additions
|
||||
|
||||
You can easily build upon the base image using an inline Dockerfile.
|
||||
|
||||
```yaml title="compose.yaml"
|
||||
services:
|
||||
mc:
|
||||
build:
|
||||
context: .
|
||||
dockerfile_inline: |
|
||||
FROM itzg/minecraft-server:latest
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
webp \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
pull: true # Always pull new base image
|
||||
pull_policy: build
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
EULA: true
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
```
|
||||
|
||||
Here is an example to add Nvidia GPU support for C2ME:
|
||||
|
||||
??? Example "C2ME GPU example"
|
||||
```yaml title="compose.yaml"
|
||||
|
||||
services:
|
||||
mc:
|
||||
build:
|
||||
context: .
|
||||
dockerfile_inline: |
|
||||
FROM itzg/minecraft-server:java25
|
||||
|
||||
# Install OpenCL loader and NVIDIA driver capabilities
|
||||
RUN apt-get update && apt-get install -y \
|
||||
ocl-icd-libopencl1 \
|
||||
opencl-headers \
|
||||
clinfo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 1. Create the vendor directory
|
||||
# 2. Tell OpenCL to use the NVIDIA library
|
||||
RUN mkdir -p /etc/OpenCL/vendors && \
|
||||
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
|
||||
|
||||
# Tell the NVIDIA container runtime to expose all GPU capabilities (including compute/utility)
|
||||
ENV NVIDIA_VISIBLE_DEVICES all
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,graphics,video
|
||||
|
||||
COPY ./mods /mods
|
||||
pull: true # Always pull new base image
|
||||
pull_policy: build
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
environment:
|
||||
EULA: true
|
||||
TYPE: "FABRIC"
|
||||
VERSION: 1.21.10
|
||||
MEMORY: 8G
|
||||
MODRINTH_PROJECTS: |-
|
||||
fabric-api
|
||||
c2me
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
```
|
||||
|
||||
|
||||
!!! tip "For advanced use only"
|
||||
|
||||
This page describes a capability that is not applicable to most users. It is only intended for rare cases when a very specific Java base image is needed or additional packages need to be installed that are not generally applicable or would bloat the image size.
|
||||
|
||||
@@ -21,6 +21,30 @@ docker compose -f compose-dev.yml run --rm -it [-e key=value] mc-dev
|
||||
|
||||
To speed up the development cycle, it is recommended to set `SETUP_ONLY` to `true` as part of the run command above.
|
||||
|
||||
## Building the image with a new release of a tool
|
||||
|
||||
In this exapmle, let's say that [mc-image-helper](https://github.com/itzg/mc-image-helper) has been [released](https://github.com/itzg/mc-image-helper/releases) at 1.56.0, but the corresponding changes in the image [scripts](https://github.com/itzg/docker-minecraft-server/tree/23205471db9814cff9c6602361dbc6cdd6c4230a/scripts) need to be tested against that version while updating [the Dockerfile](https://github.com/itzg/docker-minecraft-server/blob/23205471db9814cff9c6602361dbc6cdd6c4230a/Dockerfile#L58).
|
||||
|
||||
```yaml title="tests/manual/optional-projects/compose.yml" hl_lines="7"
|
||||
services:
|
||||
mc:
|
||||
build:
|
||||
# ...or wherever you cloned the docker-minecraft-server repo
|
||||
context: ../../..
|
||||
args:
|
||||
MC_HELPER_VERSION: 1.56.0
|
||||
environment:
|
||||
EULA: true
|
||||
TYPE: "FABRIC"
|
||||
MODRINTH_PROJECTS: |
|
||||
fabric-api
|
||||
pl3xmap?:beta
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
```
|
||||
|
||||
## Using development copy of tools
|
||||
|
||||
In the cloned repo, such as [`mc-image-helper`](https://github.com/itzg/mc-image-helper), install the distribution locally by running:
|
||||
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -86,6 +86,54 @@ Where:
|
||||
|
||||
To temporarily disable processing of the `MODRINTH_PROJECTS` list, then comment out the `MODRINTH_PROJECTS` environment variable.
|
||||
|
||||
## Optional projects
|
||||
|
||||
Projects that are not critical for the server to function can be marked as **optional** by appending a `?` to the project slug or ID. When a compatible version cannot be found for an optional project, the server logs a warning and continues startup instead of failing.
|
||||
|
||||
This is particularly useful for server-side mods that tend to lag behind on Minecraft updates, such as map renderers (Pl3xmap, BlueMap), performance mods (Lithium, C2ME), or admin tools (Spark, LuckPerms).
|
||||
|
||||
```yaml
|
||||
MODRINTH_PROJECTS: |
|
||||
fabric-api
|
||||
lithium
|
||||
pl3xmap?
|
||||
bluemap?:beta
|
||||
```
|
||||
|
||||
The `?` marker can be combined with all existing format options:
|
||||
|
||||
| Format | Example |
|
||||
|----------------------------|---------------------------|
|
||||
| Slug only | `pl3xmap?` |
|
||||
| With version | `pl3xmap?:Oa9ZDzZq` |
|
||||
| With release type | `pl3xmap?:beta` |
|
||||
| With loader prefix | `fabric:pl3xmap?` |
|
||||
| Full combination | `fabric:pl3xmap?:beta` |
|
||||
| In listing files | `pl3xmap?` *(one per line)* |
|
||||
|
||||
When combined with [`VERSION_FROM_MODRINTH_PROJECTS`](#version-from-projects), optional projects are **excluded** from the version calculation. This means an optional mod that hasn't been updated yet will never block a Minecraft version upgrade.
|
||||
|
||||
!!! example "Automatic upgrades without optional-mod breakage"
|
||||
|
||||
```yaml
|
||||
MODRINTH_PROJECTS: |
|
||||
fabric-api
|
||||
lithium
|
||||
pl3xmap?
|
||||
VERSION_FROM_MODRINTH_PROJECTS: true
|
||||
```
|
||||
|
||||
If a new Minecraft version is released and `fabric-api` + `lithium` support it but `pl3xmap` does not:
|
||||
|
||||
1. The resolved `VERSION` is set to the new version (pl3xmap is not considered)
|
||||
2. `fabric-api` and `lithium` are installed normally
|
||||
3. `pl3xmap` is skipped with a warning in the logs
|
||||
4. On a future restart, once pl3xmap publishes a compatible build, it is picked up automatically
|
||||
|
||||
!!! note
|
||||
|
||||
Optional projects marked with `?` in listing files (`@/path/to/file.txt`) are supported ; the `?` is parsed from each line the same way as inline entries.
|
||||
|
||||
## Version from Projects
|
||||
|
||||
When the environment variable `VERSION_FROM_MODRINTH_PROJECTS` is set to "true" the Minecraft [`VERSION`](../versions/minecraft.md) will be automatically determined by looking at the most recent version of Minecraft that is supported by all the projects provided in `MODRINTH_PROJECTS`.
|
||||
@@ -115,4 +163,3 @@ When the environment variable `VERSION_FROM_MODRINTH_PROJECTS` is set to "true"
|
||||
|
||||
`MODRINTH_LOADER`
|
||||
: When using a custom server, set this to specify which loader type will be requested during lookups
|
||||
|
||||
|
||||
+10
-10
@@ -1,25 +1,25 @@
|
||||
click==8.3.1
|
||||
click==8.3.3
|
||||
colorama==0.4.6
|
||||
deepmerge==2.0
|
||||
ghp-import==2.1.0
|
||||
griffe==2.0.0
|
||||
griffe==2.0.2
|
||||
Jinja2==3.1.6
|
||||
Markdown==3.10.2
|
||||
MarkupSafe==3.0.3
|
||||
mergedeep==1.3.4
|
||||
mkdocs==1.6.1
|
||||
mkdocs-autorefs==1.4.4
|
||||
mkdocs-get-deps==0.2.0
|
||||
mkdocstrings==1.0.3
|
||||
mkdocs-get-deps==0.2.2
|
||||
mkdocstrings==1.0.4
|
||||
mkdocstrings-python==2.0.3
|
||||
packaging==26.0
|
||||
pathspec==1.0.4
|
||||
platformdirs==4.9.2
|
||||
Pygments==2.19.2
|
||||
pymdown-extensions==10.21
|
||||
packaging==26.2
|
||||
pathspec==1.1.1
|
||||
platformdirs==4.9.6
|
||||
Pygments==2.20.0
|
||||
pymdown-extensions==10.21.2
|
||||
python-dateutil==2.9.0.post0
|
||||
PyYAML==6.0.3
|
||||
pyyaml_env_tag==1.1
|
||||
six==1.17.0
|
||||
watchdog==6.0.0
|
||||
# zensical @ file:///
|
||||
zensical==0.0.37
|
||||
|
||||
@@ -397,6 +397,12 @@ This image maps known server properties as described in [this section](configura
|
||||
<td><code>Randomly generated</code></td>
|
||||
<td>✅</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>RCON_PASSWORD_FILE</code></td>
|
||||
<td>Can be set to read the RCON password from a file. Overrides <code>RCON_PASSWORD</code> if both are set.</td>
|
||||
<td><code></code></td>
|
||||
<td>⬜️</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>RCON_PORT</code></td>
|
||||
<td>The port for RCON</td>
|
||||
|
||||
@@ -15,25 +15,19 @@ where `<tag>` refers to the first column of this table:
|
||||
| latest | 25 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||
| stable | 25 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||
| java25 | 25 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||
| java25-alpine | 25 | Alpine | Hotspot | amd64, arm64 | |
|
||||
| java25-jdk | 25 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
|
||||
| java25-graalvm | 25 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (5) |
|
||||
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
|
||||
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
|
||||
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (5) |
|
||||
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (5) |
|
||||
| java16 | 16 | Ubuntu | Hotspot | amd64, arm64, armv7 | (4) |
|
||||
| java16 | 16 | Ubuntu | Hotspot | amd64, arm64, armv7 | (1) |
|
||||
| java11 | 11 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||
|
||||
Notes
|
||||
|
||||
1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu-based images instead.
|
||||
2. Short-term variant, subject to deprecation upon next version introduction
|
||||
3. Based on the [Oracle GraalVM images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.
|
||||
4. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements)
|
||||
5. Due to these images using Oracle Linux, (which is based on Red Hat Enterprise Linux) Forge Installer will not work due to its use of zlib-ng. Use other images for initial installation and Forge version upgrade.
|
||||
1. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements)
|
||||
|
||||
!!! example "Example using java8"
|
||||
|
||||
@@ -127,6 +121,7 @@ Forge also doesn't support openj9 JVM implementation.
|
||||
|
||||
The following image tags have been deprecated and are no longer receiving updates:
|
||||
|
||||
- java25-graalvm, java21-graalvm, java17-graalvm
|
||||
- adopt13
|
||||
- adopt14
|
||||
- adopt15
|
||||
|
||||
@@ -2,7 +2,8 @@ To use a different Minecraft version, pass the `VERSION` environment variable (c
|
||||
|
||||
- `LATEST` for latest release (the default)
|
||||
- `SNAPSHOT` for latest snapshot
|
||||
- a specific version, such as `1.7.9`, `25w35a`, `26.1`, or `26.1-snapshot-1`
|
||||
- a specific legacy version, such as `1.7.9`, `25w35a`, `1.15.2-pre2` or `1.21.11-rc1`
|
||||
- a specific [new version numbering system](https://www.minecraft.net/en-us/article/minecraft-new-version-numbering-system) version like `26.1`, `26.1-snapshot-1`, `26.1-pre-1`, or `26.1-rc-1`
|
||||
- or an alpha and beta version, such as "b1.7.3" (server download might not exist)
|
||||
|
||||
For example, to use the latest snapshot:
|
||||
|
||||
@@ -144,6 +144,7 @@
|
||||
"smart-hud",
|
||||
"smithing-template-viewer",
|
||||
"smooth-font",
|
||||
"smooth-swapping",
|
||||
"smoothwater",
|
||||
"sodium",
|
||||
"sodium-extra",
|
||||
@@ -211,6 +212,11 @@
|
||||
},
|
||||
"valhelsia-5": {
|
||||
"excludes": ["modernfix"]
|
||||
},
|
||||
"wolds-vaults": {
|
||||
"forceIncludes": [
|
||||
"just-enough-resources-jer"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"AmbientSounds",
|
||||
"amecs",
|
||||
"Animation_Overhaul",
|
||||
"appleskin",
|
||||
"auudio",
|
||||
"axolotlbuckets",
|
||||
"BadOptimizations",
|
||||
@@ -28,7 +27,6 @@
|
||||
"compass-coords",
|
||||
"colorwheel",
|
||||
"connectedness",
|
||||
"connector",
|
||||
"continuity",
|
||||
"controlling",
|
||||
"craftpresence",
|
||||
@@ -39,8 +37,6 @@
|
||||
"distraction_free_recipes",
|
||||
"drippyloadingscreen",
|
||||
"eating-animation",
|
||||
"emi",
|
||||
"emi_loot",
|
||||
"emi_trade",
|
||||
"emiffect",
|
||||
"emitrades",
|
||||
@@ -94,6 +90,7 @@
|
||||
"seasonhud",
|
||||
"ShoulderSurfing",
|
||||
"skinlayers3d",
|
||||
"smoothswapping",
|
||||
"sodium",
|
||||
"sorted_enchantments",
|
||||
"tooltipfix",
|
||||
|
||||
+11
-2
@@ -24,12 +24,20 @@
|
||||
"jvm": "hotspot",
|
||||
"architectures": ["amd64", "arm64"]
|
||||
},
|
||||
{
|
||||
"tag": "java25-alpine",
|
||||
"java": "25",
|
||||
"distribution": "alpine",
|
||||
"jvm": "hotspot",
|
||||
"architectures": ["amd64", "arm64"]
|
||||
},
|
||||
{
|
||||
"tag": "java25-graalvm",
|
||||
"java": "25",
|
||||
"distribution": "oracle",
|
||||
"jvm": "graalvm",
|
||||
"architectures": ["amd64", "arm64"]
|
||||
"architectures": ["amd64", "arm64"],
|
||||
"deprecated": true
|
||||
},
|
||||
{
|
||||
"tag": "java24",
|
||||
@@ -67,7 +75,8 @@
|
||||
"java": "21",
|
||||
"distribution": "oracle",
|
||||
"jvm": "graalvm",
|
||||
"architectures": ["amd64", "arm64"]
|
||||
"architectures": ["amd64", "arm64"],
|
||||
"deprecated": true
|
||||
},
|
||||
{
|
||||
"tag": "java21-jdk",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 75 KiB |
@@ -54,8 +54,8 @@ fi
|
||||
|
||||
if isTrue "${DEBUG_MEMORY:-false}"; then
|
||||
log "Memory usage and availability (in MB)"
|
||||
uname -pars
|
||||
free -m
|
||||
uname -pars | applyLogPrefix
|
||||
free -m | applyLogPrefix
|
||||
fi
|
||||
|
||||
##########################################
|
||||
@@ -156,7 +156,11 @@ export DECLARED_TYPE=${TYPE^^}
|
||||
export DECLARED_VERSION="$VERSION"
|
||||
|
||||
if isTrue "${VERSION_FROM_MODRINTH_PROJECTS:-}" && [[ ${MODRINTH_PROJECTS:-} ]]; then
|
||||
if ! VERSION=$(mc-image-helper version-from-modrinth-projects --projects "${MODRINTH_PROJECTS}"); then
|
||||
args=()
|
||||
if [[ ${MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE:-} ]]; then
|
||||
args+=(--allowed-version-type "${MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE:-}")
|
||||
fi
|
||||
if ! VERSION=$(mc-image-helper version-from-modrinth-projects "${args[@]}" --projects "${MODRINTH_PROJECTS}"); then
|
||||
logError "failed to resolve version from MODRINTH_PROJECTS: ${MODRINTH_PROJECTS}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -125,6 +125,12 @@ function logn() {
|
||||
echo -n "[init] $*"
|
||||
}
|
||||
|
||||
# Use as
|
||||
# cmd | applyLogPrefix
|
||||
function applyLogPrefix() {
|
||||
sed 's/^/[init] /'
|
||||
}
|
||||
|
||||
function log() {
|
||||
local oldState
|
||||
# The return status when listing options is zero if all optnames are enabled, non- zero otherwise.
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
services:
|
||||
mc:
|
||||
build:
|
||||
# ...or wherever you cloned the docker-minecraft-server repo
|
||||
context: ../../..
|
||||
args:
|
||||
MC_HELPER_VERSION: 1.56.0
|
||||
environment:
|
||||
EULA: true
|
||||
TYPE: "FABRIC"
|
||||
MODRINTH_PROJECTS: |
|
||||
fabric-api
|
||||
pl3xmap?:beta
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
Reference in New Issue
Block a user