Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
32 changes: 31 additions & 1 deletion docs/configuration/misc-options.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions scripts/start-setupEnvVariables
Original file line number Diff line number Diff line change
Expand Up @@ -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' ..."
Expand Down Expand Up @@ -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 \
Expand Down