diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 2b5080a4e..61e222db9 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -23,6 +23,7 @@ jobs: - samp - source - valheim + - thebattleforwesnoth steps: - uses: actions/checkout@v4 diff --git a/README.md b/README.md index 7a391dae7..f490ba3c6 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,8 @@ is tagged correctly. * `ghcr.io/parkervcp/games:samp` * [`source`](/games/source) * `ghcr.io/parkervcp/games:source` +* [`thebattleforwesnoth`](/games/thebattleforwesnoth) + * `ghcr.io/parkervcp/games:thebattleforwesnoth` * [`valheim`](/games/valheim) * `ghcr.io/parkervcp/games:valheim` diff --git a/games/thebattleforwesnoth/Dockerfile b/games/thebattleforwesnoth/Dockerfile new file mode 100644 index 000000000..d1c33cee5 --- /dev/null +++ b/games/thebattleforwesnoth/Dockerfile @@ -0,0 +1,25 @@ +FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +## update base packages +RUN apt update && apt upgrade -y + +## install dependencies +RUN apt install -y gcc g++ libgcc1 libc++-dev gdb libc6 git tar zip unzip libssl-dev tini iproute2 \ + libboost-filesystem-dev libboost-iostreams-dev libboost-locale-dev libboost-random-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-coroutine-dev libboost-graph-dev \ + libsdl2-dev libcurl4-openssl-dev libcairo2-dev libvorbis-dev libbz2-dev zlib1g-dev libssl-dev libcrypto++-dev openssl cmake libsdl2-image-dev libsdl2-mixer-dev libsdl-pango-dev + + +## add container user +RUN useradd -m -d /home/container -s /bin/bash container +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +STOPSIGNAL SIGINT + +COPY --chown=container:container ./entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"] diff --git a/games/thebattleforwesnoth/entrypoint.sh b/games/thebattleforwesnoth/entrypoint.sh new file mode 100644 index 000000000..461e6b98d --- /dev/null +++ b/games/thebattleforwesnoth/entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP}