Added DOWNLOAD_EXTRA_CONFIGS (#3679)

This commit is contained in:
Crafter_Y
2025-10-01 14:30:30 +02:00
committed by GitHub
parent c6cec6390a
commit b7859d7496
3 changed files with 42 additions and 2 deletions

View File

@@ -48,7 +48,7 @@ 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
ARG MC_HELPER_VERSION=1.48.14
ARG MC_HELPER_VERSION=1.49.0
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

View File

@@ -1,4 +1,3 @@
## Running with a custom server JAR
If you would like to run a custom server JAR, set `-e TYPE=CUSTOM` and pass the custom server
@@ -142,6 +141,37 @@ To enable support for optimized SIMD operations, the JVM flag can be set with th
SIMD optimized operations are supported by Pufferfish and Purpur.
## Downloading extra configuration files
You can download additional configuration files or other resources before the server starts by using the `DOWNLOAD_EXTRA_CONFIGS` 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:
```
DOWNLOAD_EXTRA_CONFIGS=destination<source_url[,destination2<source_url2,...]
```
For example, to download configuration files for plugins:
```yaml
environment:
DOWNLOAD_EXTRA_CONFIGS: |
plugins/WorldEdit<https://raw.githubusercontent.com/EngineHub/WorldEdit/refs/heads/version/7.3.x/worldedit-bukkit/src/main/resources/defaults/config.yml
plugins/EssentialsX<https://raw.githubusercontent.com/EssentialsX/Essentials/refs/heads/2.x/Essentials/src/main/resources/config.yml
```
Or as a single line:
```yaml
environment:
DOWNLOAD_EXTRA_CONFIGS: "plugins/WorldEdit<https://example.com/worldedit.yml,config<https://example.com/another.yml"
```
The files will be downloaded to `/data/` relative paths, so `plugins/WorldEdit` will be saved as `/data/plugins/WorldEdit/config.yml`.
!!! note
The downloaded files can be further processed using [environment variable replacement](interpolating.md) or [patch definitions](interpolating.md#patching-existing-files)
## Enable timestamps in init logs
Before the container starts the Minecraft Server its output is prefixed with `[init]`, such as

View File

@@ -17,6 +17,7 @@ handleDebugMode
: "${DOWNLOAD_DEFAULTS:=}"
: "${DOWNLOAD_DEFAULT_CONFIGS:=}"
: "${SKIP_DOWNLOAD_DEFAULTS:=false}"
: "${DOWNLOAD_EXTRA_CONFIGS:=}"
if isTrue "${REPLACE_ENV_IN_PLACE}"; then
log "Replacing env variables in ${REPLACE_ENV_PATHS} that match the prefix '$REPLACE_ENV_VARIABLE_PREFIX' ..."
@@ -54,6 +55,15 @@ if isFalse "$SKIP_DOWNLOAD_DEFAULTS"; then
fi
fi
if [[ $DOWNLOAD_EXTRA_CONFIGS ]]; then
mc-image-helper mcopy \
--to /data \
--skip-existing \
--skip-up-to-date=false \
--quiet-when-skipped \
"$DOWNLOAD_EXTRA_CONFIGS"
fi
if [[ ${PATCH_DEFINITIONS} ]]; then
log "Applying patch definitions from ${PATCH_DEFINITIONS}"
mc-image-helper patch \