mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 23:16:24 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2507028193 | ||
|
|
2084f1ea12 | ||
|
|
ca2c15ea8e | ||
|
|
a5ec64de24 | ||
|
|
33c75bd2da | ||
|
|
2917af8ca4 | ||
|
|
9d7232c8b8 | ||
|
|
051436c1df | ||
|
|
9b21661aaf | ||
|
|
47b903d134 | ||
|
|
fc4331232c | ||
|
|
5dc833c108 | ||
|
|
feb6a41c11 |
4
.github/workflows/build-multiarch.yml
vendored
4
.github/workflows/build-multiarch.yml
vendored
@@ -150,7 +150,7 @@ jobs:
|
||||
uses: docker/setup-qemu-action@v3.0.0
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
@@ -188,7 +188,7 @@ jobs:
|
||||
password: ${{ github.token }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
if: github.actor == github.repository_owner
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
|
||||
4
.github/workflows/verify-pr.yml
vendored
4
.github/workflows/verify-pr.yml
vendored
@@ -54,7 +54,7 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
|
||||
- name: Confirm multi-arch build
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
# ensure latest base image is used
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.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"
|
||||
|
||||
31
Dockerfile
31
Dockerfile
@@ -22,28 +22,35 @@ COPY --chmod=644 files/sudoers* /etc/sudoers.d
|
||||
|
||||
EXPOSE 25565
|
||||
|
||||
ARG EASY_ADD_VER=0.8.1
|
||||
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||
ARG APPS_REV=1
|
||||
ARG GITHUB_BASEURL=https://github.com
|
||||
|
||||
ARG EASY_ADD_VERSION=0.8.2
|
||||
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||
RUN chmod +x /usr/bin/easy-add
|
||||
|
||||
ARG RESTIFY_VERSION=1.7.1
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=1.7.1 --var app=restify --file {{.app}} \
|
||||
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG RCON_CLI_VERSION=1.6.4
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=1.6.3 --var app=rcon-cli --file {{.app}} \
|
||||
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_MONITOR_VERSION=0.12.6
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=0.12.5 --var app=mc-monitor --file {{.app}} \
|
||||
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_SERVER_RUNNER_VERSION=1.9.1
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=1.9.1 --var app=mc-server-runner --file {{.app}} \
|
||||
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
--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.36.9
|
||||
ARG MC_HELPER_BASE_URL=https://github.com/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
||||
ARG MC_HELPER_VERSION=1.37.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
|
||||
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
||||
|
||||
@@ -101,11 +101,11 @@ secrets:
|
||||
|
||||
## Patching existing files
|
||||
|
||||
JSON path based patches can be applied to one or more existing files by setting the variable `PATCH_DEFINITIONS` to the path of a directory that contains one or more [patch definition json files](https://github.com/itzg/mc-image-helper#patchdefinition) or a [patch set json file](https://github.com/itzg/mc-image-helper#patchset).
|
||||
JSON path based patches can be applied to one or more existing files by setting the variable `PATCH_DEFINITIONS` to the path of a directory that contains one or more [patch definition json files](https://github.com/itzg/mc-image-helper#patchdefinition) or a [patch set json file](https://github.com/itzg/mc-image-helper#patchset).
|
||||
|
||||
Variable placeholders in the patch values can be restricted by setting `REPLACE_ENV_VARIABLE_PREFIX`, which defaults to "CFG_".
|
||||
The `file` and `value` fields of the patch definitions may contain `${...}` variable placeholders. The allowed environment variables in placeholders can be restricted by setting `REPLACE_ENV_VARIABLE_PREFIX`, which defaults to "CFG_".
|
||||
|
||||
The following example shows a patch-set file were various fields in the `paper.yaml` configuration file can be modified and added:
|
||||
The following example shows a patch-set file where various fields in the `paper.yaml` configuration file can be modified and added:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -139,4 +139,8 @@ The following example shows a patch-set file were various fields in the `paper.y
|
||||
}
|
||||
```
|
||||
|
||||
> **NOTES:** Only JSON and Yaml files can be patched at this time. TOML support is planned to be added next. Removal of comments and other cosmetic changes will occur when patched files are processed.
|
||||
Supports the file formats:
|
||||
- JSON
|
||||
- JSON5
|
||||
- Yaml
|
||||
- TOML, but processed output is not pretty
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
By default, the server configuration will be created and set based on the following environment variables, but only the first time the server is started. If the `server.properties` file already exists, the values in them will not be changed.
|
||||
In order to unify management of the Minecraft server container, all of the [`server.properties`](https://minecraft.wiki/w/Server.properties) entries can be managed by the environment variables described in the sections below. Some of the mappings provide additional functionality above and beyond the properties file.
|
||||
|
||||
If you prefer to manually manage the `server.properties` file, set `OVERRIDE_SERVER_PROPERTIES` to "false". Similarly, you can entirely skip the startup script's creation of `server.properties` by setting `SKIP_SERVER_PROPERTIES` to "true".
|
||||
|
||||
> NOTE: to clear a server property, set the variable to an empty string, such as `-e RESOURCE_PACK=""`. A variables that maps to a server property that is unset, is ignored and the existing `server.property` is left unchanged.
|
||||
!!! note
|
||||
|
||||
To clear a server property, set the variable to an empty string, such as `-e RESOURCE_PACK=""`. An unset variable is ignored and the existing `server.property` is left unchanged.
|
||||
|
||||
## Placeholders
|
||||
|
||||
@@ -37,32 +39,37 @@ Any declared or resolved environment variable may be referenced, such as `VERSIO
|
||||
|
||||
### Message of the Day
|
||||
|
||||
The message of the day, shown below each server entry in the client UI, can be changed with the `MOTD` environment variable, such as
|
||||
|
||||
-e MOTD="My Server"
|
||||
|
||||
If you leave it off, a default is computed from the server type and version, such as
|
||||
The message of the day, shown below each server entry in the client UI, can be changed with the `MOTD` environment variable or a default is computed from the server type and version, such as
|
||||
|
||||
A Paper Minecraft Server powered by Docker
|
||||
|
||||
That way you can easily differentiate between several servers you may have started.
|
||||
That way you can easily differentiate between several server types you may have started.
|
||||
|
||||
The section symbol (§) and other unicode characters are automatically converted to allow [formatting codes](https://minecraft.wiki/w/Formatting_codes) to be used consistently with all server versions. For example,
|
||||
The section symbol (§) and other unicode characters are automatically converted to allow [formatting codes](https://minecraft.wiki/w/Formatting_codes) to be used consistently with all server versions. For Minecraft versions less than 1.20, unicode characters in `server.properties` will be escaped as `\uXXXX`, by default. That behavior can be altered by setting `SERVER_PROPERTIES_ESCAPE_UNICODE` to "true" or "false".
|
||||
|
||||
-e MOTD="A §l§cMinecraft§r §nserver"
|
||||
!!! example
|
||||
|
||||
renders
|
||||
With `docker run`
|
||||
|
||||
-e MOTD="A §l§cMinecraft§r §nserver"
|
||||
|
||||
or within a compose file
|
||||
|
||||
environment:
|
||||
MOTD: "A §l§cMinecraft§r §nserver"
|
||||
|
||||

|
||||
|
||||
!!! note "Escape unicode"
|
||||
|
||||
For Minecraft versions less than 1.20, unicode characters in `server.properties` will be escaped as `\uXXXX`, by default. That behavior can be altered by setting `SERVER_PROPERTIES_ESCAPE_UNICODE` to "true" or "false".
|
||||
renders
|
||||
|
||||

|
||||
|
||||
To produce a multi-line MOTD, embed a newline character as `\n` in the string, such as
|
||||
|
||||
-e MOTD="Line one\nLine two"
|
||||
|
||||
!!! tip
|
||||
|
||||
You can also embed configured and resolved environment variables using [placeholders](#placeholders).
|
||||
|
||||
### Difficulty
|
||||
|
||||
The difficulty level (default: `easy`) can be set like:
|
||||
|
||||
@@ -10,6 +10,10 @@ A specific file can be omitted from each reference to allow for auto-selecting t
|
||||
|
||||
## Project-file references
|
||||
|
||||
!!! tip
|
||||
|
||||
Individual project files typically represent a version of the mod/plugin, but CurseForge refers to these items broadly as "files" rather than "versions".
|
||||
|
||||
The following formats are supported in the list of project-file references:
|
||||
|
||||
- A project page URL, such as `https://www.curseforge.com/minecraft/mc-mods/jei`. _The newest applicable file will be automatically selected._
|
||||
@@ -17,7 +21,7 @@ The following formats are supported in the list of project-file references:
|
||||
- Project slug, such as `jei`. _The newest applicable file will be automatically selected._
|
||||
- Project ID, such as `238222`. _The newest applicable file will be automatically selected._
|
||||
- Project slug or ID, `:`, and a file ID, such as `jei:4593548` or `238222:4593548`
|
||||
- Project slug or ID, `@`, and a partial filename, such as `jei@10.2.1.1005`
|
||||
- Project slug or ID, `@`, and a partial filename, such as `jei@10.2.1.1005`. This option is useful to refer to a version of the mod/plugin rather than looking up the file ID.
|
||||
|
||||
An `@` followed by the container path to a listing file can also be provided as a project-file reference. Each line is processed as a reference where blank lines and comments that start with `#` are ignored.
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
mkdocs == 1.5.3
|
||||
mkdocs-material-extensions == 1.3
|
||||
mkdocs-material == 9.4.8
|
||||
mkdocs-material-extensions == 1.3.1
|
||||
mkdocs-material == 9.4.14
|
||||
mkdocs-autorefs == 0.5.0
|
||||
mkdocstrings == 0.23.0
|
||||
mkdocstrings == 0.24.0
|
||||
mkdocs-literate-nav == 0.6.1
|
||||
mdx-gh-links == 0.3.1
|
||||
mkdocs-click == 0.8.1
|
||||
|
||||
@@ -87,7 +87,22 @@ The following examples all refer to version 1.0.7 of ATM8:
|
||||
For mod, modpacks, and world files that are not allowed for automated download, the container path `/downloads` can be attached and matching files will be retrieved from there. The subdirectories `mods`, `modpacks`, and `worlds` will also be checked accordingly. To change the source location of downloaded files, set `CF_DOWNLOADS_REPO` to an existing container path. To disable this feature, set `CF_DOWNLOADS_REPO` to an empty string.
|
||||
|
||||
!!! note "Mods need download report"
|
||||
A file called `MODS_NEED_DOWNLOAD.txt` will be created in the `/data` directory that lists the mods that need to be manually downloaded and where to get them.
|
||||
|
||||
A file called `MODS_NEED_DOWNLOAD.txt` will be created in the `/data` directory that lists the mods that need to be manually downloaded and where to get them.
|
||||
|
||||
!!! example
|
||||
|
||||
Assuming Docker compose is being used:
|
||||
|
||||
1. Create a directory next to the `docker-compose.yml` file. The name doesn't matter, but "downloads" is the common convention
|
||||
2. From the "Mods Need Download" output, visit the download page of each, click on the file download and save that file into the directory created in the previous step
|
||||
3. Add a host directory mount to the volumes section where the container path **must be** `/downloads`. The snippet below shows how that will look
|
||||
4. Re-run `docker composwe up -d` to apply the changes
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
./downloads:/downloads
|
||||
```
|
||||
|
||||
## Unpublished Modpacks
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 83 KiB |
@@ -9,18 +9,13 @@
|
||||
|
||||
umask 0002
|
||||
|
||||
if isTrue "${ENABLE_RCON:-true}" && ! [ -v RCON_PASSWORD ] && ! [ -v RCON_PASSWORD_FILE ]; then
|
||||
RCON_PASSWORD=$(openssl rand -hex 12)
|
||||
export RCON_PASSWORD
|
||||
fi
|
||||
# Remove from previous run and do this as elevated user since file used to be created before demoting
|
||||
rm -f "$HOME/.rcon-cli.env"
|
||||
|
||||
if ! isTrue "${SKIP_SUDO:-false}" && [ "$(id -u)" = 0 ]; then
|
||||
runAsUser=minecraft
|
||||
runAsGroup=minecraft
|
||||
|
||||
# For rcon-cli access running via exec, which by default is running as root
|
||||
echo "password=${RCON_PASSWORD}" > "$HOME/.rcon-cli.env"
|
||||
|
||||
if [[ -v UID ]]; then
|
||||
if [[ $UID != 0 ]]; then
|
||||
if [[ $UID != $(id -u minecraft) ]]; then
|
||||
|
||||
@@ -15,11 +15,9 @@ IFS=$'\n\t'
|
||||
: "${RCON_CMDS_FIRST_CONNECT:=}"
|
||||
: "${RCON_CMDS_LAST_DISCONNECT:=}"
|
||||
: "${RCON_CMDS_PERIOD:=10}"
|
||||
: "${RCON_PASSWORD_FILE:=}"
|
||||
: "${ENABLE_RCON:=true}"
|
||||
: "${RCON_PASSWORD:=minecraft}"
|
||||
: "${RCON_PORT:=25575}"
|
||||
export ENABLE_RCON RCON_PASSWORD RCON_PORT
|
||||
export ENABLE_RCON RCON_PORT
|
||||
|
||||
: "${MEMORY=1G}"
|
||||
: "${INIT_MEMORY=${MEMORY}}"
|
||||
@@ -49,6 +47,45 @@ if [ ! -e /data/eula.txt ]; then
|
||||
writeEula
|
||||
fi
|
||||
|
||||
if isTrue "${DEBUG_MEMORY:-false}"; then
|
||||
log "Memory usage and availability (in MB)"
|
||||
uname -a
|
||||
free -m
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# Setup RCON password
|
||||
|
||||
if isTrue "${ENABLE_RCON:-true}"; then
|
||||
if [[ -v RCON_PASSWORD_FILE ]]; then
|
||||
if [ ! -e "${RCON_PASSWORD_FILE}" ]; then
|
||||
log ""
|
||||
log "Initial RCON password file ${RCON_PASSWORD_FILE} does not seems to exist."
|
||||
log "Please ensure your configuration."
|
||||
log "If you are using Docker Secrets feature, please check this for further information: "
|
||||
log " https://docs.docker.com/engine/swarm/secrets"
|
||||
log ""
|
||||
exit 1
|
||||
else
|
||||
RCON_PASSWORD=$(cat "${RCON_PASSWORD_FILE}")
|
||||
export RCON_PASSWORD
|
||||
fi
|
||||
elif ! [[ -v RCON_PASSWORD ]]; then
|
||||
RCON_PASSWORD=$(openssl rand -hex 12)
|
||||
export RCON_PASSWORD
|
||||
fi
|
||||
|
||||
# For rcon-cli access running via exec, which by default is running as root
|
||||
echo "password=${RCON_PASSWORD}" > "$HOME/.rcon-cli.env"
|
||||
echo "password: \"${RCON_PASSWORD}\"" > "$HOME/.rcon-cli.yaml"
|
||||
else
|
||||
rm -f "$HOME/.rcon-cli.env" "$HOME/.rcon-cli.yaml"
|
||||
fi
|
||||
|
||||
|
||||
##########################################
|
||||
# Auto-pause/stop
|
||||
|
||||
if isTrue "${ENABLE_AUTOPAUSE}" && isTrue "${EXEC_DIRECTLY:-false}"; then
|
||||
log "EXEC_DIRECTLY=true is incompatible with ENABLE_AUTOPAUSE=true"
|
||||
exit 1
|
||||
@@ -67,25 +104,6 @@ if [[ $PROXY ]]; then
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [[ $RCON_PASSWORD_FILE ]]; then
|
||||
log ""
|
||||
if [ ! -e ${RCON_PASSWORD_FILE} ]; then
|
||||
log "Initial RCON password file ${RCON_PASSWORD_FILE} does not seems to exist."
|
||||
log "Please ensure your configuration."
|
||||
log "If you are using Docker Secrets feature, please check this for further information: "
|
||||
log " https://docs.docker.com/engine/swarm/secrets"
|
||||
log ""
|
||||
exit 1
|
||||
else
|
||||
RCON_PASSWORD=$(cat ${RCON_PASSWORD_FILE})
|
||||
export RCON_PASSWORD
|
||||
fi
|
||||
log ""
|
||||
fi
|
||||
|
||||
# For rcon-cli access
|
||||
echo "password=${RCON_PASSWORD}" > "$HOME/.rcon-cli.env"
|
||||
|
||||
function fixJavaPath() {
|
||||
# Some Docker management UIs grab all the image declared variables and present them for configuration.
|
||||
# When upgrading images across Java versions, that creates a mismatch in PATH's expected by base image.
|
||||
|
||||
@@ -192,12 +192,6 @@ if isTrue "${USE_SIMD_FLAGS}"; then
|
||||
"
|
||||
fi
|
||||
|
||||
if isTrue "${DEBUG_MEMORY}"; then
|
||||
log "Memory usage and availability (in MB)"
|
||||
uname -a
|
||||
free -m
|
||||
fi
|
||||
|
||||
if [[ ${INIT_MEMORY} || ${MAX_MEMORY} ]]; then
|
||||
log "Setting initial memory to ${INIT_MEMORY:=${MEMORY}} and max to ${MAX_MEMORY:=${MEMORY}}"
|
||||
if [[ ${INIT_MEMORY} ]]; then
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck source=start-utils
|
||||
. "${SCRIPTS:-/}start-utils"
|
||||
|
||||
# If supplied with a URL for a config (simple zip of configurations), download it and unpack
|
||||
if [[ "$MODCONFIG" ]]; then
|
||||
case "X$MODCONFIG" in
|
||||
X[Hh][Tt][Tt][Pp]*[Zz][iI][pP])
|
||||
log "Downloading mod/plugin configs via HTTP"
|
||||
log " from $MODCONFIG ..."
|
||||
curl -sSL -o /tmp/modconfig.zip "$MODCONFIG"
|
||||
if [ "$FAMILY" = "SPIGOT" ]; then
|
||||
mkdir -p /data/plugins
|
||||
unzip -o -d /data/plugins /tmp/modconfig.zip
|
||||
else
|
||||
mkdir -p /data/config
|
||||
unzip -o -d /data/config /tmp/modconfig.zip
|
||||
fi
|
||||
rm -f /tmp/modconfig.zip
|
||||
;;
|
||||
*)
|
||||
log "Invalid URL given for modconfig: Must be HTTP or HTTPS and a ZIP file"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
exec "${SCRIPTS:-/}start-setupMounts" "$@"
|
||||
@@ -299,4 +299,26 @@ if usesMods || usesPlugins; then
|
||||
handleCurseForgeFiles
|
||||
fi
|
||||
|
||||
exec "${SCRIPTS:-/}start-setupModconfig" "$@"
|
||||
# If supplied with a URL for a config (simple zip of configurations), download it and unpack
|
||||
if [[ "$MODCONFIG" ]]; then
|
||||
case "X$MODCONFIG" in
|
||||
X[Hh][Tt][Tt][Pp]*[Zz][iI][pP])
|
||||
log "Downloading mod/plugin configs via HTTP"
|
||||
log " from $MODCONFIG ..."
|
||||
curl -sSL -o /tmp/modconfig.zip "$MODCONFIG"
|
||||
if [ "$FAMILY" = "SPIGOT" ]; then
|
||||
mkdir -p /data/plugins
|
||||
unzip -o -d /data/plugins /tmp/modconfig.zip
|
||||
else
|
||||
mkdir -p /data/config
|
||||
unzip -o -d /data/config /tmp/modconfig.zip
|
||||
fi
|
||||
rm -f /tmp/modconfig.zip
|
||||
;;
|
||||
*)
|
||||
log "Invalid URL given for modconfig: Must be HTTP or HTTPS and a ZIP file"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
exec "${SCRIPTS:-/}start-setupMounts" "$@"
|
||||
|
||||
Reference in New Issue
Block a user