Compare commits

...

21 Commits

Author SHA1 Message Date
Geoff Bourne
855b664e47 Fixed file format list formatting interpolating.md 2025-01-20 08:42:00 -06:00
dependabot[bot]
0e3f75879d build(deps): bump docker/build-push-action from 6.11.0 to 6.12.0 in the updates group (#3268) 2025-01-20 08:18:39 -06:00
dependabot[bot]
b595c107bb build(deps): bump mkdocs-material from 9.5.49 to 9.5.50 in /docs in the patches group (#3267) 2025-01-20 08:04:29 -06:00
Geoff Bourne
3613a30709 Clarify java edition aspect (#3264) 2025-01-19 12:55:48 -06:00
Tert0
da1b052516 datapack: allow copying from directory (#3259) 2025-01-19 08:25:33 -06:00
Liz Fransen
abb3af07ba Version bump GTNH to 2.7.2 (#3258) 2025-01-17 14:08:54 -06:00
Geoff Bourne
4f1a09b2a9 examples: adjust gtnh example to use MEMORY and JVM_OPTS (#3257) 2025-01-16 10:30:13 -06:00
Geoff Bourne
4e63990bd7 cf: handle spaces around commas for includes/excludes (#3256) 2025-01-16 09:34:34 -06:00
Geoff Bourne
883d64159f cf: qualify mapping of excluded slug to mod IDs (#3254) 2025-01-14 20:55:59 -06:00
dependabot[bot]
d35b78c14e build(deps): bump mkdocs-autorefs from 1.2.0 to 1.3.0 in /docs in the patches group (#3250) 2025-01-13 07:56:22 -06:00
dependabot[bot]
d420c523a3 build(deps): bump the updates group with 2 updates (#3249) 2025-01-13 07:23:05 -06:00
Wavering Ana
1e28390d1b update mohist download script to use new API endpoint (#3247) 2025-01-12 08:11:38 -06:00
Geoff Bourne
f79ef8f3a7 ketting: fixed launcher invocation (#3244) 2025-01-10 14:52:19 -06:00
Geoff Bourne
a485f84797 modrinth: added excludes needed for create_plus (#3242) 2025-01-08 20:52:28 -06:00
Leon Kampwerth
51ba6a2c71 Fixed compose error due to missing key in GTNH example (#3238) 2025-01-06 14:15:28 -06:00
Geoff Bourne
e5b7a5829f cf: gracefully handle invalid modpack manifest file (#3237) 2025-01-06 11:05:29 -06:00
Geoff Bourne
6a994acc52 Added example for skyfactory5 (#3235) 2025-01-06 08:36:30 -06:00
Geoff Bourne
f46298c6b8 Added compose example snippets for Paper docs (#3231) 2025-01-04 11:57:04 -06:00
Geoff Bourne
a72fb19ec6 Install tput for colorized logs on alpine images (#3229) 2025-01-03 19:09:52 -06:00
Geoff Bourne
4914ffbe40 neoforge: grab latest beta even when non-beta release is newer (#3227) 2025-01-03 17:09:19 -06:00
Geoff Bourne
03f9037668 Corrected calculation of Canyon download URL (#3226) 2025-01-03 17:01:32 -06:00
19 changed files with 129 additions and 42 deletions

View File

@@ -131,10 +131,10 @@ jobs:
uses: docker/setup-buildx-action@v3.8.0 uses: docker/setup-buildx-action@v3.8.0
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3.2.0 uses: docker/setup-qemu-action@v3.3.0
- name: Build for test - name: Build for test
uses: docker/build-push-action@v6.10.0 uses: docker/build-push-action@v6.12.0
with: with:
platforms: linux/amd64 platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }} tags: ${{ env.IMAGE_TO_TEST }}
@@ -172,7 +172,7 @@ jobs:
password: ${{ github.token }} password: ${{ github.token }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@v6.10.0 uses: docker/build-push-action@v6.12.0
if: github.actor == github.repository_owner if: github.actor == github.repository_owner
with: with:
platforms: ${{ matrix.platforms }} platforms: ${{ matrix.platforms }}

View File

@@ -56,7 +56,7 @@ jobs:
uses: docker/setup-buildx-action@v3.8.0 uses: docker/setup-buildx-action@v3.8.0
- name: Confirm multi-arch build - name: Confirm multi-arch build
uses: docker/build-push-action@v6.10.0 uses: docker/build-push-action@v6.12.0
with: with:
platforms: ${{ matrix.platforms }} platforms: ${{ matrix.platforms }}
# ensure latest base image is used # ensure latest base image is used
@@ -66,7 +66,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.10.0 uses: docker/build-push-action@v6.12.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"

View File

@@ -50,7 +50,7 @@ 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
ARG MC_HELPER_VERSION=1.40.7 ARG MC_HELPER_VERSION=1.40.11
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

View File

@@ -10,10 +10,12 @@
There you will find things like There you will find things like
- [Quick start with Docker Compose](https://docker-minecraft-server.readthedocs.io/en/latest/#using-docker-compose) - [Quick start with Docker Compose](https://docker-minecraft-server.readthedocs.io/en/latest/#using-docker-compose)
- Running [different versions of Minecraft](https://docker-minecraft-server.readthedocs.io/en/latest/versions/minecraft/) and using [various server types](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/) - Running [different versions of Minecraft](https://docker-minecraft-server.readthedocs.io/en/latest/versions/minecraft/) and using [various server types](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/) for Java Edition
- [Setting server properties via container environment variables](https://docker-minecraft-server.readthedocs.io/en/latest/configuration/server-properties/) - [Setting server properties via container environment variables](https://docker-minecraft-server.readthedocs.io/en/latest/configuration/server-properties/)
- [Managing mods and plugins with automated downloads and cleanup](https://docker-minecraft-server.readthedocs.io/en/latest/mods-and-plugins/) - [Managing mods and plugins with automated downloads and cleanup](https://docker-minecraft-server.readthedocs.io/en/latest/mods-and-plugins/)
- [Using various modpack providers/platforms](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/) - [Using various modpack providers/platforms](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/)
- ...and much more - ...and much more
There are also many examples located in [the examples directory](examples) of this repo. 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.

View File

@@ -24,6 +24,7 @@ apk add --no-cache -U \
tzdata \ tzdata \
rsync \ rsync \
nano \ nano \
ncurses \
sudo \ sudo \
tar \ tar \
zstd \ zstd \

View File

@@ -139,6 +139,7 @@ The following example shows a patch-set file where various fields in the `paper.
``` ```
Supports the file formats: Supports the file formats:
- JSON - JSON
- JSON5 - JSON5
- Yaml - Yaml

View File

@@ -19,7 +19,7 @@ where, in this case, the standard server port 25565, will be exposed on your hos
!!! note !!! note
If you plan on running a server for a longer amount of time it is highly recommended using a management layer such as [Docker Compose](#using-docker-compose) or [Kubernetes](#deployment-templates-and-examples) to allow for incremental reconfiguration and image upgrades. If you plan on running a server for a longer amount of time it is highly recommended using a management layer such as [Docker Compose](#using-docker-compose) or [Kubernetes](misc/deployment/index.md#on-kubernetes) to allow for incremental reconfiguration and image upgrades.
!!! info !!! info

View File

@@ -1,5 +1,5 @@
mkdocs-material == 9.5.49 mkdocs-material == 9.5.50
mkdocs-autorefs == 1.2.0 mkdocs-autorefs == 1.3.0
mkdocstrings == 0.27.0 mkdocstrings == 0.27.0
mkdocs-literate-nav == 0.6.1 mkdocs-literate-nav == 0.6.1
mdx-gh-links == 0.4 mdx-gh-links == 0.4

View File

@@ -6,6 +6,8 @@ To allow for the selection of experimental builds, set `PAPER_CHANNEL` to "exper
!!! example !!! example
Using `docker run` command line
``` ```
docker run ... -e TYPE=PAPER ... docker run ... -e TYPE=PAPER ...
@@ -16,6 +18,26 @@ To allow for the selection of experimental builds, set `PAPER_CHANNEL` to "exper
docker run ... -e TYPE=PAPER -e PAPER_CHANNEL=experimental ... docker run ... -e TYPE=PAPER -e PAPER_CHANNEL=experimental ...
``` ```
Using a compose file:
```yaml
environment:
TYPE: PAPER
```
```yaml
environment:
TYPE: PAPER
VERSION: 1.20.6
PAPER_BUILD: 140
```
```yaml
environment:
TYPE: PAPER
PAPER_CHANNEL: experimental
```
!!! tip !!! tip
If you see the following error, it likely means you need to set the env var `PAPER_CHANNEL` to "experimental" If you see the following error, it likely means you need to set the env var `PAPER_CHANNEL` to "experimental"

View File

@@ -0,0 +1,13 @@
services:
mc:
image: itzg/minecraft-server:java8
environment:
EULA: true
TYPE: canyon
VERSION: b1.7.3
ports:
- "25565:25565"
volumes:
- mc-data:/data
volumes:
mc-data:

View File

@@ -9,15 +9,17 @@ services:
environment: environment:
EULA: "TRUE" EULA: "TRUE"
TYPE: CUSTOM TYPE: CUSTOM
GENERIC_PACKS: GT_New_Horizons_2.7.1_Server_Java_17-21 GENERIC_PACKS: GT_New_Horizons_2.7.2_Server_Java_17-21
GENERIC_PACKS_SUFFIX: .zip GENERIC_PACKS_SUFFIX: .zip
GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/ GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/
# if this isn't true, then the container tries to download the modpack every run # if this isn't true, then the container tries to download the modpack every run
: "true" SKIP_GENERIC_PACK_UPDATE_CHECK: "true"
MEMORY: 6G
# Make sure that this matches what is in your pack's startserver bash file # Make sure that this matches what is in your pack's startserver bash file
CUSTOM_JAR_EXEC: "-Xms6G -Xmx6G -Dfml.readTimeout=180 @java9args.txt -jar lwjgl3ify-forgePatches.jar nogui" JVM_OPTS: -Dfml.readTimeout=180 @java9args.txt
CUSTOM_JAR_EXEC: -jar lwjgl3ify-forgePatches.jar nogui
volumes: volumes:
# attach the relative directory 'data' to the container's /data path # attach a managed volume, change to a relative or absolute host directory if needed
- mc-data:/data - mc-data:/data
volumes: volumes:
mc-data: mc-data:

View File

@@ -4,7 +4,7 @@ services:
environment: environment:
EULA: true EULA: true
MOTD: | MOTD: |
line one A §l§cMinecraft§r server
line two line two
# or # or
# MOTD: "line one\nline two" # MOTD: "line one\nline two"

View File

@@ -0,0 +1,19 @@
services:
mc:
image: itzg/minecraft-server
environment:
EULA: true
# https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/
MODPACK_PLATFORM: AUTO_CURSEFORGE
# CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/skyfactory-5/files/6044634
CF_SLUG: skyfactory-5
CF_FILENAME_MATCHER: 5.0.2
# Loads from .env file
CF_API_KEY: ${CF_API_KEY}
MEMORY: 4G
ports:
- "25565:25565"
volumes:
- mc-data:/data
volumes:
mc-data:

View File

@@ -138,11 +138,18 @@
"all-of-fabric-6": { "all-of-fabric-6": {
"forceIncludes": ["revelationary"] "forceIncludes": ["revelationary"]
}, },
"valhelsia-5": {
"excludes": ["modernfix"]
},
"create-arcane-engineering": { "create-arcane-engineering": {
"forceIncludes": ["just-enough-resources-jer"] "forceIncludes": ["just-enough-resources-jer"]
},
"skyfactory-5": {
"forceIncludes": [
"colored-torches",
"dye-mob-dye",
"openstairs"
]
},
"valhelsia-5": {
"excludes": ["modernfix"]
} }
} }
} }

View File

@@ -22,7 +22,10 @@
"cherishedworlds", "cherishedworlds",
"citresewn", "citresewn",
"clickadv", "clickadv",
"connectedness",
"connector", "connector",
"craftpresence",
"cwb",
"DisableCustomWorldsAdvice", "DisableCustomWorldsAdvice",
"drippyloadingscreen", "drippyloadingscreen",
"eating-animation", "eating-animation",
@@ -36,6 +39,8 @@
"fancymenu", "fancymenu",
"fast-ip-ping", "fast-ip-ping",
"FauxCustomEntityData", "FauxCustomEntityData",
"feytweaks",
"figura",
"GeckoLibIrisCompat", "GeckoLibIrisCompat",
"gpumemleakfix", "gpumemleakfix",
"Highlighter", "Highlighter",
@@ -60,9 +65,11 @@
"PickUpNotifier", "PickUpNotifier",
"PresenceFootsteps", "PresenceFootsteps",
"Prism", "Prism",
"reforgium",
"reeses_sodium_options", "reeses_sodium_options",
"ResourcePackOverrides", "ResourcePackOverrides",
"ryoamiclights", "ryoamiclights",
"screenshot_viewer",
"Searchables", "Searchables",
"seasonhud", "seasonhud",
"ShoulderSurfing", "ShoulderSurfing",
@@ -73,7 +80,8 @@
"VR-Combat", "VR-Combat",
"YeetusExperimentus", "YeetusExperimentus",
"yungsmenutweaks", "yungsmenutweaks",
"Zoomify" "Zoomify",
"zume"
], ],
"globalForceIncludes": [], "globalForceIncludes": [],
"modpacks": {} "modpacks": {}

View File

@@ -18,10 +18,10 @@ githubUrl="https://github.com/KoboDev/SupplyAndDemand/releases/download"
canyonBuildJSON=$(curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json") canyonBuildJSON=$(curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json")
buildRelPath=$( buildRelPath=$(
jq '.artifacts[0].relativePath' <<< "$canyonBuildJSON" jq -r '.artifacts[0].relativePath' <<< "$canyonBuildJSON"
) )
buildNumber=$( buildNumber=$(
jq '.number'<<< "$canyonBuildJSON" jq -r '.number'<<< "$canyonBuildJSON"
) )
baseName=$(basename "${buildRelPath}") baseName=$(basename "${buildRelPath}")
@@ -50,7 +50,7 @@ if [ ! -f "$SERVER" ]; then
fi fi
curl -fsSL -o "$SERVER" "$downloadUrl" curl -fsSL -o "$SERVER" "$downloadUrl"
if [ ! -f "$SERVER" ]; then if [ ! -f "$SERVER" ]; then
logError "Failed to download from $downloadUrl (status=$?)" logError "Failed to download from $downloadUrl"
exit 3 exit 3
fi fi
fi fi

View File

@@ -17,12 +17,12 @@ export SERVER
resolveVersion resolveVersion
EXTRA_ARGS+="-minecraftVersion $VERSION" EXTRA_ARGS+=" -minecraftVersion $VERSION"
if [[ ${KETTING_VERSION:-} ]]; then if [[ ${KETTING_VERSION:-} ]]; then
EXTRA_ARGS+="-kettingVersion $KETTING_VERSION" EXTRA_ARGS+=" -kettingVersion $KETTING_VERSION"
fi fi
if [[ ${FORGE_VERSION:-} ]]; then if [[ ${FORGE_VERSION:-} ]]; then
EXTRA_ARGS+="-forgeVersion $FORGE_VERSION" EXTRA_ARGS+=" -forgeVersion $FORGE_VERSION"
fi fi
export EXTRA_ARGS export EXTRA_ARGS

View File

@@ -9,39 +9,46 @@ isDebugging && set -x
resolveVersion resolveVersion
: "${MOHIST_BUILD:=lastSuccessfulBuild}" : "${MOHIST_BUILD:=lastSuccessfulBuild}"
mohistBaseUrl=https://ci.codemc.io/job/MohistMC/ mohistBaseUrl="https://mohistmc.com/api/v2/projects/mohist/"
mohistJobs=${mohistBaseUrl}job/ mohistApiUrl="${mohistBaseUrl}${VERSION}/builds/"
mohistJob=${mohistJobs}Mohist-${VERSION}/
function logMohistAvailableVerisons(){ function logMohistAvailableVerisons(){
logError " check ${mohistBaseUrl} for available versions" logError " check ${mohistBaseUrl} for available versions"
logError " and set VERSION accordingly" logError " and set VERSION accordingly"
} }
if ! get --exists "${mohistJob}"; then if ! get --exists "${mohistApiUrl}"; then
logError "Mohist builds do not exist for ${VERSION}" logError "Mohist builds do not exist for ${VERSION}"
logMohistAvailableVerisons logMohistAvailableVerisons
exit 1 exit 1
fi fi
buildRelPath=$( if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then
get --json-path '$.artifacts[0].relativePath' "${mohistJob}${MOHIST_BUILD}/api/json" # Get the latest build number from the API
buildNumber=$(
get --json-path '$.builds[-1].number' "${mohistApiUrl}"
)
MOHIST_BUILD="${buildNumber}"
fi
downloadUrl=$(
get --json-path "$.builds[?(@.number==${MOHIST_BUILD})].url" "${mohistApiUrl}"
) )
baseName=$(basename "${buildRelPath}") if [[ -z "${downloadUrl}" ]]; then
if [[ ${baseName} != *-server.jar* ]]; then logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}"
logError "Mohist build for ${VERSION} is not a valid server jar, found ${baseName}"
logMohistAvailableVerisons logMohistAvailableVerisons
exit 1 exit 1
fi fi
export SERVER="/data/${baseName}" SERVER="/data/mohist-${VERSION}-${MOHIST_BUILD}-server.jar"
if [ ! -f "${SERVER}" ]; then if [ ! -f "${SERVER}" ]; then
log "Downloading ${baseName}" log "Downloading Mohist build ${MOHIST_BUILD} for ${VERSION}"
get -o "${SERVER}" "${mohistJob}${MOHIST_BUILD}/artifact/${buildRelPath}" get -o "${SERVER}" "${downloadUrl}"
fi fi
export FAMILY=HYBRID export FAMILY=HYBRID
export SERVER
exec "${SCRIPTS:-/}start-spiget" "$@" exec "${SCRIPTS:-/}start-spiget" "$@"

View File

@@ -41,8 +41,13 @@ if [[ "$DATAPACKS" ]]; then
exit 2 exit 2
fi fi
elif [[ -d "$i" ]]; then elif [[ -d "$i" ]]; then
log "Copying datapacks from $i ..." if [[ -f "$i/pack.mcmeta" ]]; then
cp "$i"/*.zip "${out_dir}" log "Copying datapack from $i"
cp -r "$i" "${out_dir}"
else
log "Copying datapacks from $i ..."
cp "$i"/*.zip "${out_dir}"
fi
else else
logError "Invalid URL or path given in DATAPACKS: $i" logError "Invalid URL or path given in DATAPACKS: $i"
exit 2 exit 2