mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2024-06-07 19:40:43 +00:00
Add source dir override for /plugins
, /mods
, and /config
(#1957)
This commit is contained in:
parent
d9b738f670
commit
fd2dfe3f0e
@ -747,13 +747,13 @@ packwiz modpack defitions are processed before other mod definitions (`MODPACK`,
|
|||||||
There are optional volume paths that can be attached to supply content to be copied into the data area:
|
There are optional volume paths that can be attached to supply content to be copied into the data area:
|
||||||
|
|
||||||
`/plugins`
|
`/plugins`
|
||||||
: contents are synchronized into `/data/plugins` for Bukkit related server types. Set `SYNC_SKIP_NEWER_IN_DESTINATION=false` if you want files from `/plugins` to take precedence over newer files in `/data/plugins`.
|
: contents are synchronized into `/data/plugins` for Bukkit related server types. The source can be changed by setting `COPY_PLUGINS_SRC`. The destination can be changed by setting `COPY_PLUGINS_DEST`. Set `SYNC_SKIP_NEWER_IN_DESTINATION=false` if you want files from `/plugins` to take precedence over newer files in `/data/plugins`.
|
||||||
|
|
||||||
`/mods`
|
`/mods`
|
||||||
: contents are synchronized into `/data/mods` for Fabric and Forge related server types. The destination can be changed by setting `COPY_MODS_DEST`.
|
: contents are synchronized into `/data/mods` for Fabric and Forge related server types. The source can be changed by setting `COPY_MODS_SRC`. The destination can be changed by setting `COPY_MODS_DEST`.
|
||||||
|
|
||||||
`/config`
|
`/config`
|
||||||
: contents are synchronized into `/data/config` by default, but can be changed with `COPY_CONFIG_DEST`. For example, `-v ./config:/config -e COPY_CONFIG_DEST=/data` will allow you to copy over files like `bukkit.yml` and so on directly into the server directory. Set `SYNC_SKIP_NEWER_IN_DESTINATION=false` if you want files from `/config` to take precedence over newer files in `/data/config`.
|
: contents are synchronized into `/data/config` by default, but can be changed with `COPY_CONFIG_DEST`. The source can be changed by setting `COPY_CONFIG_SRC`. For example, `-v ./config:/config -e COPY_CONFIG_DEST=/data` will allow you to copy over files like `bukkit.yml` and so on directly into the server directory. Set `SYNC_SKIP_NEWER_IN_DESTINATION=false` if you want files from `/config` to take precedence over newer files in `/data/config`.
|
||||||
|
|
||||||
By default, the [environment variable processing](#replacing-variables-inside-configs) is performed on synchronized files that match the expected suffixes in `REPLACE_ENV_SUFFIXES` (by default "yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml") and are not excluded by `REPLACE_ENV_VARIABLES_EXCLUDES` and `REPLACE_ENV_VARIABLES_EXCLUDE_PATHS`. This processing can be disabled by setting `REPLACE_ENV_DURING_SYNC` to `false`.
|
By default, the [environment variable processing](#replacing-variables-inside-configs) is performed on synchronized files that match the expected suffixes in `REPLACE_ENV_SUFFIXES` (by default "yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml") and are not excluded by `REPLACE_ENV_VARIABLES_EXCLUDES` and `REPLACE_ENV_VARIABLES_EXCLUDE_PATHS`. This processing can be disabled by setting `REPLACE_ENV_DURING_SYNC` to `false`.
|
||||||
|
|
||||||
|
@ -24,47 +24,52 @@ else
|
|||||||
subcommand=sync
|
subcommand=sync
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d /plugins ]; then
|
: "${COPY_PLUGINS_SRC:="/plugins"}"
|
||||||
|
: "${COPY_PLUGINS_DEST:="/data/plugins"}"
|
||||||
|
|
||||||
|
if [ -d "${COPY_PLUGINS_SRC}" ]; then
|
||||||
case ${FAMILY} in
|
case ${FAMILY} in
|
||||||
SPIGOT|HYBRID)
|
SPIGOT|HYBRID)
|
||||||
mkdir -p /data/plugins
|
mkdir -p "${COPY_PLUGINS_DEST}"
|
||||||
log "Copying plugins over..."
|
log "Copying any plugins from ${COPY_PLUGINS_SRC} to ${COPY_PLUGINS_DEST}"
|
||||||
mc-image-helper \
|
mc-image-helper \
|
||||||
${subcommand} $updateArg \
|
${subcommand} $updateArg \
|
||||||
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
||||||
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
||||||
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
||||||
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
||||||
/plugins /data/plugins
|
"${COPY_PLUGINS_SRC}" "${COPY_PLUGINS_DEST}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If any modules have been provided, copy them over
|
# If any modules have been provided, copy them over
|
||||||
|
: "${COPY_MODS_SRC:="/mods"}"
|
||||||
: "${COPY_MODS_DEST:="/data/mods"}"
|
: "${COPY_MODS_DEST:="/data/mods"}"
|
||||||
|
|
||||||
if [ -d /mods ]; then
|
if [ -d "${COPY_MODS_SRC}" ]; then
|
||||||
log "Copying any mods over..."
|
log "Copying any mods from ${COPY_MODS_SRC} to ${COPY_MODS_DEST}"
|
||||||
mc-image-helper \
|
mc-image-helper \
|
||||||
${subcommand} $updateArg \
|
${subcommand} $updateArg \
|
||||||
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
||||||
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
||||||
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
||||||
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
||||||
/mods "${COPY_MODS_DEST}"
|
"${COPY_MODS_SRC}" "${COPY_MODS_DEST}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
: "${COPY_CONFIG_SRC:="/config"}"
|
||||||
: "${COPY_CONFIG_DEST:="/data/config"}"
|
: "${COPY_CONFIG_DEST:="/data/config"}"
|
||||||
|
|
||||||
if [ -d /config ]; then
|
if [ -d "${COPY_CONFIG_SRC}" ]; then
|
||||||
log "Copying any configs from /config to ${COPY_CONFIG_DEST}"
|
log "Copying any configs from ${COPY_CONFIG_SRC} to ${COPY_CONFIG_DEST}"
|
||||||
mc-image-helper \
|
mc-image-helper \
|
||||||
${subcommand} $updateArg \
|
${subcommand} $updateArg \
|
||||||
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
--replace-env-file-suffixes="${REPLACE_ENV_SUFFIXES}" \
|
||||||
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
--replace-env-excludes="${REPLACE_ENV_VARIABLES_EXCLUDES}" \
|
||||||
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
--replace-env-exclude-paths="${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS}" \
|
||||||
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
--replace-env-prefix="${REPLACE_ENV_VARIABLE_PREFIX}" \
|
||||||
/config "${COPY_CONFIG_DEST}"
|
"${COPY_CONFIG_SRC}" "${COPY_CONFIG_DEST}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "${SCRIPTS:-/}start-setupServerProperties" "$@"
|
exec "${SCRIPTS:-/}start-setupServerProperties" "$@"
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
{}
|
21
tests/setuponlytests/mounts-custom/docker-compose.yml
Normal file
21
tests/setuponlytests/mounts-custom/docker-compose.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: ${IMAGE_TO_TEST:-itzg/minecraft-server}
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
SETUP_ONLY: "true"
|
||||||
|
TYPE: CUSTOM
|
||||||
|
CUSTOM_SERVER: /servers/fake.jar
|
||||||
|
VERSION: 1.18.1
|
||||||
|
COPY_PLUGINS_SRC: /custom/plugins
|
||||||
|
COPY_PLUGINS_DEST: /data/custom-plugins
|
||||||
|
COPY_MODS_SRC: /custom/mods
|
||||||
|
COPY_MODS_DEST: /data/custom-mods
|
||||||
|
COPY_CONFIG_SRC: /custom/config
|
||||||
|
COPY_CONFIG_DEST: /data/custom-config
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./custom:/custom
|
||||||
|
- ./fake.jar:/servers/fake.jar
|
0
tests/setuponlytests/mounts-custom/fake.jar
Normal file
0
tests/setuponlytests/mounts-custom/fake.jar
Normal file
3
tests/setuponlytests/mounts-custom/verify.sh
Normal file
3
tests/setuponlytests/mounts-custom/verify.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
mc-image-helper assert fileExists custom-plugins/plugin.jar
|
||||||
|
mc-image-helper assert fileExists custom-mods/mod.jar
|
||||||
|
mc-image-helper assert fileExists custom-config/test.json
|
Loading…
Reference in New Issue
Block a user