diff --git a/games/conan/entrypoint.sh b/games/conan/entrypoint.sh index 89f85ae..a3a440e 100644 --- a/games/conan/entrypoint.sh +++ b/games/conan/entrypoint.sh @@ -13,6 +13,10 @@ SRCDS_PASS=${STEAM_PASS} SRCDS_AUTH=${STEAM_AUTH} SRCDS_APPID=${STEAM_APPID} +STEAMSERVERID=440900 +GAMEMODDIR=./ConanSandbox/Mods +GAMEMODLIST=${GAMEMODDIR}/modlist.txt + # Wait for the container to fully initialize sleep 1 @@ -59,13 +63,10 @@ fi ## if auto_update is not set or to 1 update if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then - # Update Source Server + # Update Server if [ ! -z ${STEAM_APPID} ]; then if [ "${STEAM_USER}" == "anonymous" ]; then ./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${STEAM_APPID} $( [[ -z ${STEAM_BETAID} ]] || printf %s "-beta ${STEAM_BETAID}" ) $( [[ -z ${STEAM_BETAPASS} ]] || printf %s "-betapassword ${STEAM_BETAPASS}" ) $( [[ "${VALIDATE}" == "1" ]] && printf %s 'validate' ) +quit - else - numactl --physcpubind=+0 ./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${STEAM_APPID} $( [[ -z ${STEAM_BETAID} ]] || printf %s "-beta ${STEAM_BETAID}" ) $( [[ -z ${STEAM_BETAPASS} ]] || printf %s "-betapassword ${STEAM_BETAPASS}" ) $( [[ "${VALIDATE}" == "1" ]] && printf %s 'validate' ) +quit - fi else echo -e "${BLUE}---------------------------------------------------------------------${NC}" echo -e "${YELLOW}No appid set. Starting Server${NC}" @@ -83,11 +84,6 @@ if [ -z ${MODS_UPDATE} ] || [ "${MODS_UPDATE}" == "1" ]; then echo -e "${YELLOW}updating mods...${NC}" echo -e "${BLUE}---------------------------------------------------------------------${NC}" -STEAMSERVERID=440900 - -GAMEMODDIR=./ConanSandbox/Mods -GAMEMODLIST=${GAMEMODDIR}/modlist.txt - cd /home/container if [ ! -f ./modlist.txt ]; then diff --git a/games/dayz/Dockerfile b/games/dayz/Dockerfile deleted file mode 100644 index d4f4e2f..0000000 --- a/games/dayz/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -## Original Author David Wolfe (Red-Thirten) rehlmgaming@gmail.com - -FROM --platform=$BUILDPLATFORM debian:bookworm-slim - -LABEL author="Torsten Widmann" maintainer="info@goover.de" -LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" -LABEL org.opencontainers.image.licenses=MIT -LABEL org.opencontainers.image.description Dockerimage for Pelican Hosting Panel and Pterodactyl -# Update the repository and install needed packages -ARG DEBIAN_FRONTEND=noninteractive -COPY sources.list /etc/apt/sources.list -RUN dpkg --add-architecture i386 -RUN apt update \ - && apt -y upgrade - -RUN apt install -y \ - curl \ - tini \ - tzdata \ - locales \ - iproute2 \ - gettext-base \ - ca-certificates \ - libssl-dev \ - lib32gcc-s1 \ - libsdl2-2.0-0 \ - libsdl2-2.0-0:i386 \ - libstdc++6 \ - libstdc++6:i386 \ - lib32stdc++6 \ - libcap2 \ - libnss-wrapper - -# Set the locale -RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ - locale-gen -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -## Prepare NSS Wrapper for the entrypoint as a workaround for games requiring a valid UID -ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group -RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ - && chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ - && chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} -ADD passwd.template /passwd.template - -## Setup user and working directory -RUN useradd -m -d /home/container -s /bin/bash container -USER container -ENV USER=container HOME=/home/container -WORKDIR /home/container - -# Sets the default stop signal as wings can (currently) only send a kill or generic stop -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/dayzdpl/Dockerfile b/games/dayzdpl/Dockerfile new file mode 100644 index 0000000..be0ce5b --- /dev/null +++ b/games/dayzdpl/Dockerfile @@ -0,0 +1,138 @@ +FROM --platform=$BUILDPLATFORM debian:bookworm-slim + +LABEL author="Torsten Widmann" maintainer="info@goover.de" +LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" +LABEL org.opencontainers.image.licenses=MIT +LABEL org.opencontainers.image.description Dockerimage for Pelican Hosting Panel and PterodactylLABEL org.opencontainers.image.description Dockerimage for Pelican Hosting Panel and Pterodactyl + +ARG DEBIAN_FRONTEND=noninteractive + +COPY sources.list /etc/apt/sources.list +RUN dpkg --add-architecture i386 +RUN apt update +RUN apt -y upgrade +RUN apt install -y --no-install-recommends \ + ca-certificates \ + curl \ + dbus \ + dirmngr \ + g++ \ + gcc \ + gdb \ + gettext \ + git \ + gnupg \ + iproute2 \ + iproute2 \ + jq \ + locales \ + mesa-utils \ + net-tools \ + netcat-openbsd \ + numactl \ + psmisc \ + python3 \ + python3-dev \ + python3-pip \ + sed \ + speex:i386 \ + tar \ + telnet \ + tini \ + tzdata \ + wget \ + unzip \ + lib32gcc-s1 \ + lib32stdc++6 \ + lib32tinfo6 \ + lib32z1 \ + libasound2 \ + libatk1.0-0 \ + libatomic1 \ + libc++-dev \ + libc++1 \ + libc6 \ + libc6:i386 \ + libcurl3-gnutls \ + libcurl3-gnutls:i386 \ + libcurl4 \ + libcurl4-gnutls-dev:i386 \ + libcurl4:i386 \ + libfontconfig \ + libgcc1 \ + libgconf-2-4 \ + libgdiplus \ + libgtk2.0-0:i386 \ + libnss3 \ + libnss-wrapper \ + libpangocairo-1.0-0 \ + libpulse-dev \ + libpulse0 \ + libsdl1.2debian \ + libsdl1.2debian:i386 \ + libsdl2-2.0-0 \ + libsdl2-2.0-0:i386 \ + libssl3 \ + libssl3:i386 \ + libstdc++6 \ + libstdc++6:i386 \ + libtcmalloc-minimal4 \ + libtinfo6:i386 \ + libxcomposite1 \ + libxcursor1 \ + libxdamage1 \ + libxi6 \ + libxrandr2 \ + libxss1 \ + libxtst6 + +RUN rm -rf /var/lib/apt/lists/* + +## install dotnet to support STEAM dotnet games +RUN apt update -y \ + && apt upgrade -y \ + && wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb \ + && rm packages-microsoft-prod.deb \ + && apt update -y \ + && apt install -y \ + aspnetcore-runtime-8.0 \ + dotnet-sdk-8.0 + +RUN curl -sLOJ $(curl -s https://api.github.com/repos/SteamRE/DepotDownloader/releases/latest | grep browser_download_url | cut -d\" -f4 | egrep linux-x64.zip) +RUN unzip DepotDownloader-linux-x64.zip -d /usr/local/bin/ +RUN chmod +x /usr/local/bin/DepotDownloader + +## install rcon +RUN cd /tmp/ \ + && curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.3/rcon-0.10.3-amd64_linux.tar.gz > rcon.tar.gz \ + && tar xvf rcon.tar.gz \ + && mv rcon-0.10.3-amd64_linux/rcon /usr/local/bin/ + +# Set the locale +RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ + locale-gen +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 + +## Prepare NSS Wrapper for the entrypoint as a workaround for Valheim requiring a valid UID +ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group +RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ + && chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ + && chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} +ADD passwd.template /passwd.template + +## Setup user and working directory +RUN useradd -m -d /home/container -s /bin/bash container +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +# Sets the default stop signal as wings can (currently) only send a kill or generic stop +STOPSIGNAL SIGINT + +COPY --chown=container:container ../entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"] \ No newline at end of file diff --git a/games/dayz/README.md b/games/dayzdpl/README.md similarity index 100% rename from games/dayz/README.md rename to games/dayzdpl/README.md diff --git a/games/dayz/entrypoint.sh b/games/dayzdpl/entrypoint.sh similarity index 100% rename from games/dayz/entrypoint.sh rename to games/dayzdpl/entrypoint.sh diff --git a/games/dayz/passwd.template b/games/dayzdpl/passwd.template similarity index 100% rename from games/dayz/passwd.template rename to games/dayzdpl/passwd.template diff --git a/games/dayz/sources.list b/games/dayzdpl/sources.list similarity index 100% rename from games/dayz/sources.list rename to games/dayzdpl/sources.list