Add support for changing the advertised port

This commit is contained in:
drizuid 2022-05-02 11:50:07 -04:00
parent 73769bccf8
commit 2faaa95884
8 changed files with 102 additions and 44 deletions

View File

@ -28,7 +28,6 @@ RUN \
gmp-dev \
hiredis-dev \
icu-dev \
irrlicht-dev \
jq \
leveldb-dev \
libjpeg-turbo-dev \
@ -43,7 +42,8 @@ RUN \
ncurses-dev \
openal-soft-dev \
python3-dev \
sqlite-dev && \
sqlite-dev \
zstd-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
curl \
@ -56,7 +56,9 @@ RUN \
luajit \
lua-socket \
sqlite \
sqlite-libs && \
sqlite-libs \
zstd \
zstd-libs && \
echo "**** compile spatialindex ****" && \
git clone https://github.com/libspatialindex/libspatialindex /tmp/spatialindex && \
cd /tmp/spatialindex && \
@ -64,6 +66,18 @@ RUN \
-DCMAKE_INSTALL_PREFIX=/usr && \
make -j 2 && \
make install && \
echo "**** compile irrlicht ****" && \
mkdir -p /tmp/irrlicht && \
IRRLICHT_VER=$(curl -sX GET "https://api.github.com/repos/minetest/irrlicht/releases/latest" \
| jq -r .tag_name) && \
curl -o /tmp/irrlicht.tar.gz \
-L "https://github.com/minetest/irrlicht/archive/${IRRLICHT_VER}.tar.gz" && \
tar xf /tmp/irrlicht.tar.gz -C \
/tmp/irrlicht --strip-components=1 && \
cd /tmp/irrlicht && \
cmake . && \
make -j 2 && \
make install && \
echo "**** compile minetestserver ****" && \
if [ -z ${MINETEST_RELEASE+x} ]; then \
MINETEST_RELEASE=$(curl -sX GET "https://api.github.com/repos/minetest/minetest/releases" \

View File

@ -28,7 +28,6 @@ RUN \
gmp-dev \
hiredis-dev \
icu-dev \
irrlicht-dev \
jq \
leveldb-dev \
libjpeg-turbo-dev \
@ -43,7 +42,8 @@ RUN \
ncurses-dev \
openal-soft-dev \
python3-dev \
sqlite-dev && \
sqlite-dev \
zstd-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
curl \
@ -56,7 +56,9 @@ RUN \
luajit \
lua-socket \
sqlite \
sqlite-libs && \
sqlite-libs \
zstd \
zstd-libs && \
echo "**** compile spatialindex ****" && \
git clone https://github.com/libspatialindex/libspatialindex /tmp/spatialindex && \
cd /tmp/spatialindex && \
@ -64,6 +66,18 @@ RUN \
-DCMAKE_INSTALL_PREFIX=/usr && \
make -j 2 && \
make install && \
echo "**** compile irrlicht ****" && \
mkdir -p /tmp/irrlicht && \
IRRLICHT_VER=$(curl -sX GET "https://api.github.com/repos/minetest/irrlicht/releases/latest" \
| jq -r .tag_name) && \
curl -o /tmp/irrlicht.tar.gz \
-L "https://github.com/minetest/irrlicht/archive/${IRRLICHT_VER}.tar.gz" && \
tar xf /tmp/irrlicht.tar.gz -C \
/tmp/irrlicht --strip-components=1 && \
cd /tmp/irrlicht && \
cmake . && \
make -j 2 && \
make install && \
echo "**** compile minetestserver ****" && \
if [ -z ${MINETEST_RELEASE+x} ]; then \
MINETEST_RELEASE=$(curl -sX GET "https://api.github.com/repos/minetest/minetest/releases" \

View File

@ -28,7 +28,6 @@ RUN \
gmp-dev \
hiredis-dev \
icu-dev \
irrlicht-dev \
jq \
leveldb-dev \
libjpeg-turbo-dev \
@ -43,7 +42,8 @@ RUN \
ncurses-dev \
openal-soft-dev \
python3-dev \
sqlite-dev && \
sqlite-dev \
zstd-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
curl \
@ -56,7 +56,9 @@ RUN \
luajit \
lua-socket \
sqlite \
sqlite-libs && \
sqlite-libs \
zstd \
zstd-libs && \
echo "**** compile spatialindex ****" && \
git clone https://github.com/libspatialindex/libspatialindex /tmp/spatialindex && \
cd /tmp/spatialindex && \
@ -64,6 +66,18 @@ RUN \
-DCMAKE_INSTALL_PREFIX=/usr && \
make -j 2 && \
make install && \
echo "**** compile irrlicht ****" && \
mkdir -p /tmp/irrlicht && \
IRRLICHT_VER=$(curl -sX GET "https://api.github.com/repos/minetest/irrlicht/releases/latest" \
| jq -r .tag_name) && \
curl -o /tmp/irrlicht.tar.gz \
-L "https://github.com/minetest/irrlicht/archive/${IRRLICHT_VER}.tar.gz" && \
tar xf /tmp/irrlicht.tar.gz -C \
/tmp/irrlicht --strip-components=1 && \
cd /tmp/irrlicht && \
cmake . && \
make -j 2 && \
make install && \
echo "**** compile minetestserver ****" && \
if [ -z ${MINETEST_RELEASE+x} ]; then \
MINETEST_RELEASE=$(curl -sX GET "https://api.github.com/repos/minetest/minetest/releases" \

8
Jenkinsfile vendored
View File

@ -345,9 +345,11 @@ pipeline {
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template"
git rm unraid/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Removing Deprecated Unraid Template' || :
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml

View File

@ -46,22 +46,26 @@ Find us at:
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/minetest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/minetest:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
## Application Setup
You can find the world maps, mods folder and config files in /config/.minetest.
If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie;
if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp
Client and server must be the same version, please browse the tags here to pull the appropriate version for your server:
https://hub.docker.com/r/linuxserver/minetest/tags
@ -77,13 +81,13 @@ Here are some example snippets to help you get started creating a container.
version: "2.1"
services:
minetest:
image: lscr.io/linuxserver/minetest
image: lscr.io/linuxserver/minetest:latest
container_name: minetest
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- CLI_ARGS="--gameid minetest" #optional
- CLI_ARGS="--gameid minetest --port 30000" #optional
volumes:
- /path/to/data:/config/.minetest
ports:
@ -99,11 +103,11 @@ docker run -d \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e CLI_ARGS="--gameid minetest" `#optional` \
-e CLI_ARGS="--gameid minetest --port 30000" `#optional` \
-p 30000:30000/udp \
-v /path/to/data:/config/.minetest \
--restart unless-stopped \
lscr.io/linuxserver/minetest
lscr.io/linuxserver/minetest:latest
```
## Parameters
@ -116,7 +120,7 @@ Container images are configured using parameters passed at runtime (such as thos
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-e CLI_ARGS="--gameid minetest"` | Optionally specify any [CLI variables](https://wiki.minetest.net/Command_line) you want to launch the app with |
| `-e CLI_ARGS="--gameid minetest --port 30000"` | Optionally specify any [CLI variables](https://wiki.minetest.net/Command_line) you want to launch the app with |
| `-v /config/.minetest` | Where minetest stores config files and maps etc. |
## Environment variables from files (Docker secrets)
@ -162,7 +166,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' minetest`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/minetest`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/minetest:latest`
## Updating Info
@ -180,7 +184,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/minetest`
* Update the image: `docker pull lscr.io/linuxserver/minetest:latest`
* Stop the running container: `docker stop minetest`
* Delete the container: `docker rm minetest`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@ -228,7 +232,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **19.01.21:** - Rebasing to alpine 3.15.
* **02.05.22:** - Allow specifying the advertised port.
* **17.03.22:** - Install forked irrlicht, add zstd.
* **19.01.22:** - Rebasing to alpine 3.15.
* **02.06.20:** - Rebasing to alpine 3.12.
* **19.12.19:** - Rebasing to alpine 3.11.
* **12.07.19:** - Bugfix to support multiple CLI variables.

View File

@ -1,26 +1,26 @@
alpine-baselayout-3.2.0-r18
alpine-keys-2.4-r1
apk-tools-2.12.7-r3
bash-5.1.8-r0
bash-5.1.16-r0
brotli-libs-1.0.9-r5
busybox-1.34.1-r3
busybox-1.34.1-r5
ca-certificates-20211220-r0
ca-certificates-bundle-20211220-r0
coreutils-9.0-r2
curl-7.80.0-r0
gmp-6.2.1-r0
curl-7.80.0-r1
gmp-6.2.1-r1
hiredis-1.0.2-r0
leveldb-1.22-r1
libacl-2.2.53-r0
libattr-2.5.1-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1l-r8
libcurl-7.80.0-r0
libcrypto1.1-1.1.1n-r0
libcurl-7.80.0-r1
libgcc-10.3.1_git20211027-r0
libintl-0.21-r0
libproc-3.3.17-r0
libretls-3.3.4-r2
libssl1.1-1.1.1l-r8
libretls-3.3.4-r3
libssl1.1-1.1.1n-r0
libstdc++-10.3.1_git20211027-r0
linux-pam-1.5.2-r0
lua-socket-3.0_rc1_git20160306-r3
@ -39,9 +39,11 @@ skalibs-2.11.0.0-r0
snappy-1.1.9-r1
sqlite-3.36.0-r0
sqlite-libs-3.36.0-r0
ssl_client-1.34.1-r3
tzdata-2021e-r0
ssl_client-1.34.1-r5
tzdata-2022a-r0
utmps-0.1.0.3-r0
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
xz-5.2.5-r1
xz-libs-5.2.5-r1
zlib-1.2.12-r1
zstd-1.5.0-r0
zstd-libs-1.5.0-r0

View File

@ -36,7 +36,7 @@ cap_add_param: false
# optional container parameters
opt_param_usage_include_env: true
opt_param_env_vars:
- { env_var: "CLI_ARGS", env_value: "\"--gameid minetest\"", desc: "Optionally specify any [CLI variables](https://wiki.minetest.net/Command_line) you want to launch the app with" }
- { env_var: "CLI_ARGS", env_value: "\"--gameid minetest --port 30000\"", desc: "Optionally specify any [CLI variables](https://wiki.minetest.net/Command_line) you want to launch the app with" }
# application setup block
@ -44,12 +44,18 @@ app_setup_block_enabled: true
app_setup_block: |
You can find the world maps, mods folder and config files in /config/.minetest.
If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie;
if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp
Client and server must be the same version, please browse the tags here to pull the appropriate version for your server:
https://hub.docker.com/r/linuxserver/{{ project_name }}/tags
# changelog
changelogs:
- { date: "19.01.21:", desc: "Rebasing to alpine 3.15." }
- { date: "02.05.22:", desc: "Allow specifying the advertised port."}
- { date: "17.03.22:", desc: "Install forked irrlicht, add zstd." }
- { date: "19.01.22:", desc: "Rebasing to alpine 3.15." }
- { date: "02.06.20:", desc: "Rebasing to alpine 3.12." }
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- { date: "12.07.19:", desc: "Bugfix to support multiple CLI variables." }

View File

@ -1,5 +1,5 @@
#!/usr/bin/with-contenv bash
exec \
s6-setuidgid abc minetestserver ${CLI_ARGS} \
--config /config/.minetest/main-config/minetest.conf --port 30000
s6-setuidgid abc minetestserver --port 30000 \
--config /config/.minetest/main-config/minetest.conf ${CLI_ARGS}