mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-04-15 10:08:53 +00:00
Compare commits
15 Commits
2026.4.1
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7c5e9ecb5 | ||
|
|
59a2126192 | ||
|
|
5e2e26831e | ||
|
|
18d57981f5 | ||
|
|
a5cd3a57fa | ||
|
|
c692e99523 | ||
|
|
5f9bc3a414 | ||
|
|
df7f067782 | ||
|
|
7b1cb53cda | ||
|
|
dcfedaa10f | ||
|
|
a9a27df4a6 | ||
|
|
a2fbd4ce9a | ||
|
|
eb4fe3c7bf | ||
|
|
8c9e2c653f | ||
|
|
bd98fe57ba |
3
.github/dependabot.yml
vendored
3
.github/dependabot.yml
vendored
@@ -16,6 +16,9 @@ updates:
|
||||
schedule:
|
||||
interval: weekly
|
||||
groups:
|
||||
docker:
|
||||
patterns:
|
||||
- "docker/*"
|
||||
patches:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@@ -107,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.
|
||||
@@ -137,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 }}
|
||||
@@ -168,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
|
||||
@@ -183,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 }}
|
||||
|
||||
2
.github/workflows/discord.yml
vendored
2
.github/workflows/discord.yml
vendored
@@ -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
|
||||
|
||||
6
.github/workflows/verify-pr.yml
vendored
6
.github/workflows/verify-pr.yml
vendored
@@ -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"
|
||||
|
||||
@@ -55,7 +55,7 @@ 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-image-helper versioning=loose
|
||||
ARG MC_HELPER_VERSION=1.55.4
|
||||
ARG MC_HELPER_VERSION=1.56.2
|
||||
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
|
||||
|
||||
25
README.md
25
README.md
@@ -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)
|
||||
|
||||
|
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
|
||||
BIN
docs/img/banner-sponsors.png
Normal file
BIN
docs/img/banner-sponsors.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
9
docs/img/banner-sponsors.txt
Normal file
9
docs/img/banner-sponsors.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Generated at https://textcraft.net/
|
||||
|
||||
Line 1:
|
||||
"Sponsors"
|
||||
Mid
|
||||
None
|
||||
Minecrafter
|
||||
Drop shadow
|
||||
3d-style view
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ mkdocs-autorefs==1.4.4
|
||||
mkdocs-get-deps==0.2.2
|
||||
mkdocstrings==1.0.3
|
||||
mkdocstrings-python==2.0.3
|
||||
packaging==26.0
|
||||
packaging==26.1
|
||||
pathspec==1.0.4
|
||||
platformdirs==4.9.4
|
||||
platformdirs==4.9.6
|
||||
Pygments==2.20.0
|
||||
pymdown-extensions==10.21.2
|
||||
python-dateutil==2.9.0.post0
|
||||
@@ -22,4 +22,4 @@ PyYAML==6.0.3
|
||||
pyyaml_env_tag==1.1
|
||||
six==1.17.0
|
||||
watchdog==6.0.0
|
||||
zensical==0.0.31
|
||||
zensical==0.0.33
|
||||
|
||||
@@ -39,8 +39,6 @@
|
||||
"distraction_free_recipes",
|
||||
"drippyloadingscreen",
|
||||
"eating-animation",
|
||||
"emi",
|
||||
"emi_loot",
|
||||
"emi_trade",
|
||||
"emiffect",
|
||||
"emitrades",
|
||||
|
||||
17
tests/manual/optional-projects/compose.yml
Normal file
17
tests/manual/optional-projects/compose.yml
Normal file
@@ -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