From ca2237f69c3e638eb0346b5072ddb9ac62d148ab Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 27 Oct 2024 06:18:33 +0100 Subject: [PATCH] update java images to noble and some more cleanup --- .github/workflows/games.yml | 3 - games/dayzdpl/Dockerfile | 138 ---------- games/dayzdpl/README.md | 2 - games/dayzdpl/entrypoint.sh | 361 ------------------------- games/dayzdpl/passwd.template | 26 -- games/dayzdpl/sources.list | 14 - games/longvinter/Dockerfile | 114 -------- games/longvinter/entrypoint.sh | 168 ------------ games/riskofrain2/Dockerfile | 120 -------- games/riskofrain2/entrypoint.sh | 160 ----------- games/riskofrain2/sources.list | 14 - games/satisfactory/Dockerfile | 126 --------- games/satisfactory/entrypoint.sh | 97 ------- games/satisfactory/passwd.template | 26 -- games/thebattleofwesnoth/Dockerfile | 62 ----- games/thebattleofwesnoth/entrypoint.sh | 20 -- java/base/11/Dockerfile | 8 +- java/base/17/Dockerfile | 8 +- java/base/21/Dockerfile | 8 +- java/base/22/Dockerfile | 6 +- java/base/23/Dockerfile | 39 +++ java/base/8/Dockerfile | 8 +- 22 files changed, 58 insertions(+), 1470 deletions(-) delete mode 100644 games/dayzdpl/Dockerfile delete mode 100644 games/dayzdpl/README.md delete mode 100644 games/dayzdpl/entrypoint.sh delete mode 100644 games/dayzdpl/passwd.template delete mode 100644 games/dayzdpl/sources.list delete mode 100644 games/longvinter/Dockerfile delete mode 100644 games/longvinter/entrypoint.sh delete mode 100644 games/riskofrain2/Dockerfile delete mode 100644 games/riskofrain2/entrypoint.sh delete mode 100644 games/riskofrain2/sources.list delete mode 100644 games/satisfactory/Dockerfile delete mode 100644 games/satisfactory/entrypoint.sh delete mode 100644 games/satisfactory/passwd.template delete mode 100644 games/thebattleofwesnoth/Dockerfile delete mode 100644 games/thebattleofwesnoth/entrypoint.sh create mode 100644 java/base/23/Dockerfile diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 42a499a0..28a310d8 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -24,13 +24,10 @@ jobs: game: - foundry - interstellarrift - - longvinter - quakeliveqlx - - riskofrain2 - satisfactory - screeps - staxel - #- thebattleofwesnod - thefront - valheim - wurm diff --git a/games/dayzdpl/Dockerfile b/games/dayzdpl/Dockerfile deleted file mode 100644 index 8014dfce..00000000 --- a/games/dayzdpl/Dockerfile +++ /dev/null @@ -1,138 +0,0 @@ -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=AGPL -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/dayzdpl/README.md b/games/dayzdpl/README.md deleted file mode 100644 index f13724e6..00000000 --- a/games/dayzdpl/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# DayZ -Docker container designed to run Bohemia Interactive's DayZ dedicated server. diff --git a/games/dayzdpl/entrypoint.sh b/games/dayzdpl/entrypoint.sh deleted file mode 100644 index 2c35f64b..00000000 --- a/games/dayzdpl/entrypoint.sh +++ /dev/null @@ -1,361 +0,0 @@ -#!/bin/bash - -## File: Pterodactyl DayZ SA Image - entrypoint.sh -## Author: David Wolfe (Red-Thirten) -## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/) -## Date: 2022/05/22 -## License: MIT License - -## === CONSTANTS === -STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh -STEAMCMD_LOG="${STEAMCMD_DIR}/steamcmd.log" # Log file for SteamCMD -GAME_ID=221100 # SteamCMD ID for the DayZ SA GAME (not server). Only used for Workshop mod downloads. - -# Color Codes -CYAN='\033[0;36m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -RED='\033[0;31m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -## === ENVIRONMENT VARS === -# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, UPDATE_SERVER, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, STEAMCMD_APPID, SERVER_PASSWORD, STEAMCMD_ATTEMPTS, DISABLE_MOD_UPDATES - -## === GLOBAL VARS === -# validateServer, extraFlags, updateAttempt, modifiedStartup, allMods, CLIENT_MODS - -## === DEFINE FUNCTIONS === - -# Runs SteamCMD with specified variables and performs error handling. -function RunSteamCMD { #[Input: int server=0 mod=1; int id] - # Clear previous SteamCMD log - if [[ -f "${STEAMCMD_LOG}" ]]; then - rm -f "${STEAMCMD_LOG:?}" - fi - - updateAttempt=0 - while (( $updateAttempt < $STEAMCMD_ATTEMPTS )); do # Loop for specified number of attempts - # Increment attempt counter - updateAttempt=$((updateAttempt+1)) - - if (( $updateAttempt > 1 )); then # Notify if not first attempt - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t${YELLOW}Re-Attempting download/update in 3 seconds...${NC} (Attempt ${CYAN}${updateAttempt}${NC} of ${CYAN}${STEAMCMD_ATTEMPTS}${NC})\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - sleep 3 - fi - - # Check if updating server or mod - if [[ $1 == 0 ]]; then # Server - ${STEAMCMD_DIR}/steamcmd.sh +force_install_dir /home/container "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}" - else # Mod - ${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}" - fi - - # Error checking for SteamCMD - steamcmdExitCode=${PIPESTATUS[0]} - if [[ -n $(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL") ]]; then # Catch errors (ignore setlocale and SDL warnings) - # Soft errors - if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})" - echo -e "\t(This is expected for particularly large mods)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - elif [[ -n $(grep -i "0x402\|0x6\|0x602" "${STEAMCMD_LOG}") ]]; then # Connection issue with Steam - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${YELLOW}[UPDATE]: ${NC}Connection issue with Steam servers." - echo -e "\t(Steam servers may currently be down, or a connection cannot be made reliably)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - # Hard errors - elif [[ -n $(grep -i "Password check for AppId" "${STEAMCMD_LOG}") ]]; then # Incorrect beta branch password - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: ${YELLOW}Incorrect password given for beta branch. ${CYAN}Skipping download...${NC}" - echo -e "\t(Check your \"[ADVANCED] EXTRA FLAGS FOR STEAMCMD\" startup parameter)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - break - # Fatal errors - elif [[ -n $(grep -i "Invalid Password\|two-factor\|No subscription" "${STEAMCMD_LOG}") ]]; then # Wrong username/password, Steam Guard is turned on, or host is using anonymous account - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: Cannot login to Steam - Improperly configured account and/or credentials" - echo -e "\t${YELLOW}Please contact your administrator/host and give them the following message:${NC}" - echo -e "\t${CYAN}Your Egg, or your client's server, is not configured with valid Steam credentials.${NC}" - echo -e "\t${CYAN}Either the username/password is wrong, or Steam Guard is not properly configured\n\taccording to this egg's documentation/README.${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 - elif [[ -n $(grep -i "Download item" "${STEAMCMD_LOG}") ]]; then # Steam account does not own base game for mod downloads, or unknown - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: Cannot download mod - Download failed" - echo -e "\t${YELLOW}While unknown, this error is likely due to your host's Steam account not owning the base game.${NC}" - echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 - elif [[ -n $(grep -i "0x202\|0x212" "${STEAMCMD_LOG}") ]]; then # Not enough disk space - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: Unable to complete download - Not enough storage" - echo -e "\t${YELLOW}You have run out of your allotted disk space.${NC}" - echo -e "\t${YELLOW}Please contact your administrator/host for potential storage upgrades.${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 - elif [[ -n $(grep -i "0x606" "${STEAMCMD_LOG}") ]]; then # Disk write failure - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: Unable to complete download - Disk write failure" - echo -e "\t${YELLOW}This is normally caused by directory permissions issues,\n\tbut could be a more serious hardware issue.${NC}" - echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 - else # Unknown caught error - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: ${YELLOW}An unknown error has occurred with SteamCMD. ${CYAN}Skipping download...${NC}" - echo -e "\t(Please contact your administrator/host if this issue persists)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - break - fi - elif [[ $steamcmdExitCode != 0 ]]; then # Unknown fatal error - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[UPDATE]: SteamCMD has crashed for an unknown reason!${NC} (Exit code: ${CYAN}${steamcmdExitCode}${NC})" - echo -e "\t${YELLOW}(Please contact your administrator/host for support)${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit $steamcmdExitCode - else # Success! - if [[ $1 == 0 ]]; then # Server - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${GREEN}[UPDATE]: Game server is up to date!${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - else # Mod - # Move the downloaded mod to the root directory, and replace existing mod if needed - mkdir -p ./@$2 - rm -rf ./@$2/* - mv -f ./Steam/steamapps/workshop/content/$GAME_ID/$2/* ./@$2 - rm -d ./Steam/steamapps/workshop/content/$GAME_ID/$2 - # Make the mods contents all lowercase - ModsLowercase @$2 - # Move any .bikey's to the keys directory - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\tMoving any mod ${CYAN}.bikey${NC} files to the ${CYAN}~/keys/${NC} folder..." - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \; - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${GREEN}[UPDATE]: Mod download/update successful!${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - break - fi - if (( $updateAttempt == $STEAMCMD_ATTEMPTS )); then # Notify if failed last attempt - if [[ $1 == 0 ]]; then # Server - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete game server update. ${CYAN}Skipping...${NC}" - echo -e "\t(Please try again at a later time)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - sleep 3 - else # Mod - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete mod download/update. ${CYAN}Skipping...${NC}" - echo -e "\t(You may try again later, or manually upload this mod to your server via SFTP)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - sleep 3 - fi - fi - done -} - -# Takes a directory (string) as input, and recursively makes all files & folders lowercase. -function ModsLowercase { - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n\tMaking mod ${CYAN}$1${NC} files/folders lowercase..." - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - for SRC in `find ./$1 -depth` - do - DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'` - if [ "${SRC}" != "${DST}" ] - then - [ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" - fi - done -} - -# Removes duplicate items from a semicolon delimited string -function RemoveDuplicates { #[Input: str - Output: printf of new str] - if [[ -n $1 ]]; then # If nothing to compare, skip to prevent extra semicolon being returned - echo $1 | sed -e 's/;/\n/g' | sort -u | xargs printf '%s;' - fi -} - -## === ENTRYPOINT START === - -# Wait for the container to fully initialize -sleep 1 - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') -export INTERNAL_IP - -# Information output -clear -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${RED}DayZ Image modified by gOOvER${NC}" -echo -e "${RED}Origianl Image by Red-Thirten${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}Running on Debian: ${RED} $(cat /etc/debian_version)${NC}" -echo -e "${YELLOW}Current timezone: ${RED} $(cat /etc/timezone)${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -# Switch to the container's working directory -cd /home/container || exit 1 - -# Collect and parse all specified mods -if [[ -n ${MODIFICATIONS} ]] && [[ ${MODIFICATIONS} != *\; ]]; then # Add manually specified mods to the client-side mods list, while checking for trailing semicolon - CLIENT_MODS="${MODIFICATIONS};" -else - CLIENT_MODS=${MODIFICATIONS} -fi -# If the mod list file exists and is valid, parse and add mods to the client-side mods list -if [[ -f ${MOD_FILE} ]] && [[ -n "$(cat ${MOD_FILE} | grep 'Created by DayZ Launcher')" ]]; then - CLIENT_MODS+=$(cat ${MOD_FILE} | grep 'id=' | cut -d'=' -f3 | cut -d'"' -f1 | xargs printf '@%s;') -elif [[ -n "${MOD_FILE}" ]]; then # If MOD_FILE is not null, warn user file is missing or invalid - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${YELLOW}[STARTUP_WARN]: DayZ Modlist file \"${CYAN}${MOD_FILE}${YELLOW}\" could not be found, or is invalid!${NC}" - echo -e "\tEnsure your uploaded modlist's file name matches your Startup Parameter." - echo -e "\tOnly files exported from a DayZ Launcher are permitted." - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - if [[ -n "${CLIENT_MODS}" ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t${CYAN}Reverting to the manual mod list...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi -fi -# Add server mods to the master mods list, while checking for trailing semicolon -if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then - allMods="${SERVERMODS};" -else - allMods=${SERVERMODS} -fi -allMods+=$CLIENT_MODS # Add all client-side mods to the master mod list -CLIENT_MODS=$(RemoveDuplicates ${CLIENT_MODS}) # Remove duplicate mods from CLIENT_MODS, if present -allMods=$(RemoveDuplicates ${allMods}) # Remove duplicate mods from allMods, if present -allMods=$(echo $allMods | sed -e 's/;/ /g') # Convert from string to array - -# Update everything (server and mods), if specified -if [[ ${UPDATE_SERVER} == 1 ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${GREEN}[STARTUP]: ${CYAN}Starting checks for all updates...${NC}" - echo -e "(It is okay to ignore any \"SDL\" errors during this process)\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - - ## Update game server - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${GREEN}[UPDATE]:${NC} Checking for game server updates with App ID: ${CYAN}${STEAMCMD_APPID}${NC}..." - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - - if [[ ${VALIDATE_SERVER} == 1 ]]; then # Validate will be added as a parameter if specified - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t${CYAN}File validation enabled.${NC} (This may take extra time to complete)" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - validateServer="validate" - else - validateServer="" - fi - - # Determine what extra flags should be set - if [[ -n ${STEAMCMD_EXTRA_FLAGS} ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\t(${YELLOW}Advanced${NC}) Extra SteamCMD flags specified: ${CYAN}${STEAMCMD_EXTRA_FLAGS}${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - extraFlags=${STEAMCMD_EXTRA_FLAGS} - else - echo -e "" - extraFlags="" - fi - - RunSteamCMD 0 ${STEAMCMD_APPID} - - ## Update mods - if [[ -n $allMods ]] && [[ ${DISABLE_MOD_UPDATES} != 1 ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${GREEN}[UPDATE]:${NC} Checking all ${CYAN}Steam Workshop mods${NC} for updates..." - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - for modID in $(echo $allMods | sed -e 's/@//g') - do - if [[ $modID =~ ^[0-9]+$ ]]; then # Only check mods that are in ID-form - # Get mod's latest update in epoch time from its Steam Workshop changelog page - latestUpdate=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep '

$(find @$modID | head -1 | xargs stat -c%Y) ) ]]; then - # Get the mod's name from the Workshop page as well - modName=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep 'workshopItemTitle' | cut -d'>' -f2 | cut -d'<' -f1) - if [[ -z $modName ]]; then # Set default name if unavailable - modName="[NAME UNAVAILABLE]" - fi - if [[ ! -d @$modID ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${GREEN}[UPDATE]:${NC} Downloading new Mod: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${GREEN}[UPDATE]:${NC} Mod update found for: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\tAttempting mod update/download via SteamCMD...\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - RunSteamCMD 1 $modID - fi - fi - done - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${GREEN}[UPDATE]:${NC} Steam Workshop mod update check ${GREEN}complete${NC}!" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi -fi - -# Check if specified server binary exists. -if [[ ! -f ./${SERVER_BINARY} ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}[STARTUP_ERR]: Specified DayZ server binary could not be found in the root directory!${NC}" - echo -e "${YELLOW}Please do the following to resolve this issue:${NC}" - echo -e "\t${CYAN}- Double check your \"Server Binary\" Startup Variable is correct.${NC}" - echo -e "\t${CYAN}- Ensure your server has properly installed/updated without errors (reinstalling/updating again may help).${NC}" - echo -e "\t${CYAN}- Use the File Manager to check that your specified server binary file is not missing from the root directory.${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 -fi - -# Make mods lowercase, if specified -if [[ ${MODS_LOWERCASE} == "1" ]]; then - for modDir in $allMods - do - ModsLowercase $modDir - done -fi - -# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile) -export USER_ID=$(id -u) -export GROUP_ID=$(id -g) -envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD} -export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so - -# Replace Startup Variables -modifiedStartup=`eval echo $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` - -# Start the Server -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:" -echo -e "${CYAN}${modifiedStartup}${NC}\n" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -${modifiedStartup} - -if [ $? -ne 0 ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "\n${RED}PTDL_CONTAINER_ERR: There was an error while attempting to run the start command.${NC}\n" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - exit 1 -fi diff --git a/games/dayzdpl/passwd.template b/games/dayzdpl/passwd.template deleted file mode 100644 index 2b0dd458..00000000 --- a/games/dayzdpl/passwd.template +++ /dev/null @@ -1,26 +0,0 @@ -root:x:0:0:root:/root:/bin/bash -daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin -bin:x:2:2:bin:/bin:/usr/sbin/nologin -sys:x:3:3:sys:/dev:/usr/sbin/nologin -sync:x:4:65534:sync:/bin:/bin/sync -games:x:5:60:games:/usr/games:/usr/sbin/nologin -man:x:6:12:man:/var/cache/man:/usr/sbin/nologin -lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin -mail:x:8:8:mail:/var/mail:/usr/sbin/nologin -news:x:9:9:news:/var/spool/news:/usr/sbin/nologin -uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin -proxy:x:13:13:proxy:/bin:/usr/sbin/nologin -www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin -backup:x:34:34:backup:/var/backups:/usr/sbin/nologin -list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin -irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin -gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin -nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin -systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false -systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false -systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false -systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false -syslog:x:104:108::/home/syslog:/bin/false -messagebus:x:106:109::/var/run/dbus:/bin/false -bind:x:108:112::/var/cache/bind:/bin/false -${USER}:x:${USER_ID}:${GROUP_ID}:${USER}:${HOME}:/bin/bash \ No newline at end of file diff --git a/games/dayzdpl/sources.list b/games/dayzdpl/sources.list deleted file mode 100644 index 2824c781..00000000 --- a/games/dayzdpl/sources.list +++ /dev/null @@ -1,14 +0,0 @@ -deb http://deb.debian.org/debian/ bookworm contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware \ No newline at end of file diff --git a/games/longvinter/Dockerfile b/games/longvinter/Dockerfile deleted file mode 100644 index d7b37d32..00000000 --- a/games/longvinter/Dockerfile +++ /dev/null @@ -1,114 +0,0 @@ -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=AGPL -LABEL org.opencontainers.image.description Dockerimage for Pelican Hosting Panel and Pterodactyl -# Sets the default stop signal as wings can (currently) only send a kill or generic stop -STOPSIGNAL SIGINT - -ARG DEBIAN_FRONTEND=noninteractive - -RUN dpkg --add-architecture i386 -RUN apt update \ - && apt -y upgrade - -RUN apt install -y \ - ca-certificates \ - curl \ - dbus \ - dirmngr \ - g++ \ - gcc \ - gdb \ - git \ - git-lfs \ - gnupg \ - iproute2 \ - jq \ - mesa-utils \ - net-tools \ - netcat-openbsd \ - numactl \ - psmisc \ - python3 \ - python3-dev \ - python3-pip \ - sed \ - speex:i386 \ - tar \ - telnet \ - tini \ - tzdata \ - wget \ - lib32gcc-s1 \ - lib32stdc++6 \ - lib32tinfo6 \ - lib32z1 \ - libasound2 \ - libatk1.0-0 \ - libc++1 \ - libc6:i386 \ - libcurl3-gnutls:i386 \ - libcurl4 \ - libcurl4:i386 \ - libcurl4-gnutls-dev:i386 \ - libfontconfig1 \ - libgcc1 \ - libgconf-2-4 \ - libgdiplus \ - libgtk2.0-0:i386 \ - libncurses5:i386 \ - libnss-wrapper \ - libnss-wrapper:i386 \ - libnss3 \ - libpangocairo-1.0-0 \ - libpulse-dev \ - 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 - -## 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-7.0 \ - dotnet-sdk-7.0 - -## 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/ - -## 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/longvinter/entrypoint.sh b/games/longvinter/entrypoint.sh deleted file mode 100644 index 77454754..00000000 --- a/games/longvinter/entrypoint.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -clear -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' - -# Wait for the container to fully initialize -sleep 1 - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') -export INTERNAL_IP - -# Information output -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${RED}LongVinter Image by gOOvER${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}Running on Debian: ${RED} $(cat /etc/debian_version)${NC}" -echo -e "${YELLOW}Current timezone: ${RED} $(cat /etc/timezone)${NC}" -echo -e "${YELLOW}DotNet Version: ${RED} $(dotnet --version) ${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -# Set environment for Steam Proton -if [ -f "/usr/local/bin/proton" ]; then - if [ ! -z ${STEAM_APPID} ]; then - mkdir -p /home/container/.steam/steam/steamapps/compatdata/${STEAM_APPID} - export STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/container/.steam/steam" - export STEAM_COMPAT_DATA_PATH="/home/container/.steam/steam/steamapps/compatdata/${STEAM_APPID}" - #protontricks - #export STEAM_DIR="/home/container/.steam/steam" - export WINETRICKS="/usr/sbin/winetricks" - #export STEAM_RUNTIME=1 - - else - echo -e "${BLUE}----------------------------------------------------------------------------------${NC}" - echo -e "${RED}WARNING!!! Proton needs variable STEAM_APPID, else it will not work. Please add it${NC}" - echo -e "${RED}Server stops now${NC}" - echo -e "${BLUE}----------------------------------------------------------------------------------${NC}" - exit 0 - fi -fi - -# Switch to the container's working directory -cd /home/container || exit 1 - -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${GREEN}Starting Server.... Please wait...${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -## just in case someone removed the defaults. -if [ "${STEAM_USER}" == "" ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Steam user is not set. ${NC}" - echo -e "${YELLOW}Using anonymous user.${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - STEAM_USER=anonymous - STEAM_PASS="" - STEAM_AUTH="" -else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}user set to ${STEAM_USER} ${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" -fi - -## if auto_update is not set or to 1 update -if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then - # Update Source 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}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || 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}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit - fi - else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}No appid set. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - -else - echo -e "${BLUE}---------------------------------------------------------------${NC}" - echo -e "${YELLOW}Not updating game server as auto update was set to 0. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------${NC}" -fi - -## Pull Server from Github -if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then - cd /home/container/longvinter-linux-server - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}checkig for Server update. please wait...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - git restore . - sleep 1 - git stash - sleep 1 - git pull "https://github.com/Uuvana-Studios/longvinter-linux-server.git" main - sleep 1 - cd /home/container/ - chmod -R ugo+rwx longvinter-linux-server/ -else - echo -e "${BLUE}---------------------------------------------------------------${NC}" - echo -e "${YELLOW}Not updating game server as auto update was set to 0. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------${NC}" -fi - -## updating mods -if [ -z ${MODS_UPDATE} ] || [ "${MODS_UPDATE}" == "1" ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}updating mods...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -STEAMSERVERID=1635450 - -GAMEMODDIR=./mods -GAMEMODLIST=${GAMEMODDIR}/modlist.txt - -cd /home/container - -if [ ! -f ./modlist.txt ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}found no modlist.txt. creating one...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - touch ./modlist.txt - echo -e "${GREEN}[DONE]${NC}" -fi - -# Clear server modlist so we don't end up with duplicates -echo "" > ${GAMEMODLIST} -MODS=$(awk '{print $1}' ./modlist.txt) - -MODCMD="./steamcmd/steamcmd.sh +login anonymous" -for MODID in ${MODS} -do - echo "Adding $MODID to update list..." - MODCMD="${MODCMD} +workshop_download_item ${STEAMSERVERID} ${MODID}" -done -MODCMD="${MODCMD} +quit" -${MODCMD} - -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}linking mods...${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -mkdir -p ${GAMEMODDIR} -# make dir to prevent errors -mkdir -p /home/container/Steam/steamapps/workshop - -for MODID in ${MODS} -do - echo -e "${BLUE}Linking ${NC}${RED}$MODID${NC}" - MODDIR=/home/container/Steam/steamapps/workshop/content/${STEAMSERVERID}/${MODID}/ - find "${MODDIR}" -iname '*.pak' >> ${GAMEMODLIST} -done -fi -echo -e "${GREEN}[DONE]${NC}" - -# 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} diff --git a/games/riskofrain2/Dockerfile b/games/riskofrain2/Dockerfile deleted file mode 100644 index 335052ad..00000000 --- a/games/riskofrain2/Dockerfile +++ /dev/null @@ -1,120 +0,0 @@ -FROM 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 - -## install required packages -ARG DEBIAN_FRONTEND=noninteractive -RUN dpkg --add-architecture i386 -RUN apt update -RUN apt -y upgrade -RUN apt install -y \ - apt-transport-https \ - binutils \ - ca-certificates \ - cabextract \ - curl \ - ffmpeg \ - g++ \ - gcc \ - gdb \ - git \ - gnupg2 \ - icu-devtools \ - iproute2 \ - locales \ - net-tools \ - netcat-openbsd \ - numactl \ - procps \ - python3 \ - rapidjson-dev \ - software-properties-common \ - sqlite3 \ - tar \ - telnet \ - tini \ - tzdata \ - unzip \ - wget \ - winbind \ - xauth \ - xvfb \ - xz-utils \ - zip \ - libatomic1 \ - libc++-dev \ - libc6 \ - libduktape207 \ - libevent-dev \ - libfluidsynth3 \ - libfontconfig \ - libgcc1 \ - libicu72 \ - liblua5.4-0 \ - liblzo2-2 \ - libmariadbclient-dev-compat \ - libncurses6:i386 \ - libntlm0 \ - libprotobuf32 \ - libsdl1.2debian \ - libsdl2-2.0-0 \ - libsdl2-2.0-0:i386 \ - libsystemd0:i386 \ - libsqlite3-dev \ - libstdc++6 \ - libunwind8 \ - libz-dev \ - libzip4 - -RUN rm -rf /var/lib/apt/lists/* - -# Install wine and with recommends -RUN mkdir -pm755 /etc/apt/keyrings -RUN wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key -RUN wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources -RUN apt update -RUN apt install winehq-staging winbind cabextract -y - -# Set up Winetricks -RUN wget -q -O /usr/sbin/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -RUN chmod +x /usr/sbin/winetricks - -## 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/ - -# Setup ENVs -ENV HOME=/home/container -ENV WINEPREFIX=/home/container/.wine -ENV WINEDLLOVERRIDES="mscoree,mshtml=" -ENV DISPLAY=:0 -ENV DISPLAY_WIDTH=1024 -ENV DISPLAY_HEIGHT=768 -ENV DISPLAY_DEPTH=16 - -# 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 - -RUN bash -c 'echo "vm.max_map_count = 16777216" > /etc/sysctl.d/20-max_map_count.conf' - -## 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/riskofrain2/entrypoint.sh b/games/riskofrain2/entrypoint.sh deleted file mode 100644 index 852cf409..00000000 --- a/games/riskofrain2/entrypoint.sh +++ /dev/null @@ -1,160 +0,0 @@ -#!/bin/bash - -clear -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' - - -# Wait for the container to fully initialize -sleep 1 - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Default the IMAGE_PROMPT environment variable to something nice -IMAGE_PROMPT=${IMAGE_PROMPT:-$'\033[1m\033[33mcontainer@pterodactyl~ \033[0m'} -export IMAGE_PROMPT - -# Information output -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}Risk of Rain2 Image from gOOvER${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}Running on Debian $(cat /etc/debian_version)${NC}" -echo -e "${YELLOW}Current timezone: $(cat /etc/timezone)${NC}" -echo -e "${YELLOW}Wine Version:${NC} ${RED} $(wine --version)${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') -export INTERNAL_IP - -# Switch to the container's working directory -cd /home/container || exit 1 - -## just in case someone removed the defaults. -if [ "${STEAM_USER}" == "" ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Steam user is not set.\n ${NC}" - echo -e "${YELLOW}Using anonymous user.\n ${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - STEAM_USER=anonymous - STEAM_PASS="" - STEAM_AUTH="" -else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}user set to ${STEAM_USER} ${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" -fi - -## if auto_update is not set or to 1 update -if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then - # Update Source 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' ) $( [[ "${STEAM_SDK}" == "1" ]] && printf %s '+app_update 1007' ) +app_update ${STEAM_APPID} $( [[ -z ${STEAM_BETAID} ]] || printf %s "-beta ${STEAM_BETAID}" ) $( [[ -z ${STEAM_BETAPASS} ]] || printf %s "-betapassword ${STEAM_BETAPASS}" ) ${INSTALL_FLAGS} $( [[ "${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' ) $( [[ "${STEAM_SDK}" == "1" ]] && printf %s '+app_update 1007' ) +app_update ${STEAM_APPID} $( [[ -z ${STEAM_BETAID} ]] || printf %s "-beta ${STEAM_BETAID}" ) $( [[ -z ${STEAM_BETAPASS} ]] || printf %s "-betapassword ${STEAM_BETAPASS}" ) ${INSTALL_FLAGS} $( [[ "${VALIDATE}" == "1" ]] && printf %s 'validate' ) +quit - fi - else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}No appid set. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - -else - echo -e "${BLUE}---------------------------------------------------------------${NC}" - echo -e "${YELLOW}Not updating game server as auto update was set to 0. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------${NC}" -fi - -if [[ $XVFB == 1 ]]; then - Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} & -fi - -# Install necessary to run packages -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${RED}First launch will throw some errors. Ignore them${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -mkdir -p $WINEPREFIX - -# Check if wine-gecko required and install it if so -if [[ $WINETRICKS_RUN =~ gecko ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Installing Wine Gecko${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - WINETRICKS_RUN=${WINETRICKS_RUN/gecko} - - if [ ! -f "$WINEPREFIX/gecko_x86.msi" ]; then - wget -q -O $WINEPREFIX/gecko_x86.msi http://dl.winehq.org/wine/wine-gecko/2.47.4/wine_gecko-2.47.4-x86.msi - fi - - if [ ! -f "$WINEPREFIX/gecko_x86_64.msi" ]; then - wget -q -O $WINEPREFIX/gecko_x86_64.msi http://dl.winehq.org/wine/wine-gecko/2.47.4/wine_gecko-2.47.4-x86_64.msi - fi - - wine msiexec /i $WINEPREFIX/gecko_x86.msi /qn /quiet /norestart /log $WINEPREFIX/gecko_x86_install.log - wine msiexec /i $WINEPREFIX/gecko_x86_64.msi /qn /quiet /norestart /log $WINEPREFIX/gecko_x86_64_install.log -fi - -# Check if wine-mono required and install it if so -if [[ $WINETRICKS_RUN =~ mono ]]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Installing Wine Mono${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - WINETRICKS_RUN=${WINETRICKS_RUN/mono} - - if [ ! -f "$WINEPREFIX/mono.msi" ]; then - wget -q -O $WINEPREFIX/mono.msi https://dl.winehq.org/wine/wine-mono/9.3.0/wine-mono-9.3.0-x86.msi - fi - - wine msiexec /i $WINEPREFIX/mono.msi /qn /quiet /norestart /log $WINEPREFIX/mono_install.log -fi - -# List and install other packages -for trick in $WINETRICKS_RUN; do - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Installing: ${NC} ${GREEN} $trick ${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - winetricks -q $trick -done - -# BepInEx install -if [ -f BEPINEX_FLAG ] || [ "${BEPINEX}" = 1 ] ; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Updating BepInEx...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - curl -sSL "https://thunderstore.io/package/download/bbepis/BepInExPack/${BEP_VERSION}/" > bepinex.zip - unzip -o -q bepinex.zip - cp -R /home/container/BepInExPack/* /home/container - rm -f bepinex.zip - rm -fR /home/container/BepInExPack - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${GREEN}Done installing BepInEx!${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" -else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${RED}Removing BepInEx...${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - rm -fR BepInEx - rm -f doorstop_config.ini - rm -f winhttp.dll - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${RED}Done removing BepInEx${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" -fi - -#cleanup -rm -f icon.png -rm -f README.md -rm -f manifest.json - -# Replace Startup Variables -MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') -echo ":/home/container$ ${MODIFIED_STARTUP}" - -# Run the Server -eval ${MODIFIED_STARTUP} diff --git a/games/riskofrain2/sources.list b/games/riskofrain2/sources.list deleted file mode 100644 index 2824c781..00000000 --- a/games/riskofrain2/sources.list +++ /dev/null @@ -1,14 +0,0 @@ -deb http://deb.debian.org/debian/ bookworm contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware - -deb http://deb.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware -# deb-src http://deb.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware \ No newline at end of file diff --git a/games/satisfactory/Dockerfile b/games/satisfactory/Dockerfile deleted file mode 100644 index 93d7f10c..00000000 --- a/games/satisfactory/Dockerfile +++ /dev/null @@ -1,126 +0,0 @@ -FROM --platform=$BUILDPLATFORM ubuntu:24.04 - -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=AGPL -LABEL org.opencontainers.image.description Dockerimage for Pelican Hosting Panel and Pterodactyl - -ARG DEBIAN_FRONTEND=noninteractive -RUN dpkg --add-architecture i386 -RUN apt update \ - && apt -y upgrade - -RUN apt install -y \ - ca-certificates \ - curl \ - dbus \ - dirmngr \ - dos2unix \ - aspnetcore-runtime-8.0 \ - dotnet-sdk-8.0 \ - g++ \ - gcc \ - gdb \ - gettext \ - git \ - gnupg \ - iproute2 \ - iproute2 \ - jq \ - locales \ - lsb-release \ - mesa-utils \ - net-tools \ - netcat-openbsd \ - numactl \ - openssl \ - psmisc \ - python3 \ - python3-dev \ - python3-pip \ - sed \ - speex:i386 \ - tar \ - telnet \ - tini \ - tzdata \ - wget \ - lib32gcc-s1-amd64-cross \ - libgcc-s1-amd64-cross \ - lib32stdc++6 \ - lib32tinfo6 \ - lib32z1 \ - libatk1.0-0 \ - libatomic1 \ - libc++-dev \ - libc++1 \ - libc6 \ - libc6:i386 \ - libcurl3-gnutls \ - libcurl3-gnutls:i386 \ - libcurl4 \ - libcurl4-gnutls-dev:i386 \ - libcurl4:i386 \ - libfontconfig \ - libnss-wrapper \ - libgcc1 \ - libgdiplus \ - libgtk2.0-0:i386 \ - libicu74 \ - libnss3 \ - 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 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 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"] \ No newline at end of file diff --git a/games/satisfactory/entrypoint.sh b/games/satisfactory/entrypoint.sh deleted file mode 100644 index 2683b046..00000000 --- a/games/satisfactory/entrypoint.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash - -clear -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' -#test -MSGERROR="\033[0;31mERROR:\033[0m" -MSGWARNING="\033[0;33mWARNING:\033[0m" -NUMCHECK='^[0-9]+$' -RAMAVAILABLE=$(awk '/MemAvailable/ {printf( "%d\n", $2 / 1024000 )}' /proc/meminfo) - -# Wait for the container to fully initialize -sleep 1 - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') -export INTERNAL_IP - -# Information output -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${RED}Satisfactory Image by gOOvER${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${YELLOW}Running on Ubuntu: ${RED} $(lsb_release -ds)${NC}" -echo -e "${YELLOW}Current timezone: ${RED} $(cat /etc/timezone)${NC}" -echo -e "${YELLOW}DotNet Version: ${RED} $(dotnet --version) ${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -# Switch to the container's working directory -cd /home/container || exit 1 - -# check, if hostmode oon proxmox is enabled and stop if hostmode is not set -cpu_model=$(lscpu | grep 'Model name:' | sed 's/Model name:[[:space:]]*//g') - if [[ "$cpu_model" == "Common KVM processor" || "$cpu_model" == *"QEMU"* ]]; then - printf "${MSGERROR} Your CPU model is configured as \"${cpu_model}\", which will cause Satisfactory to crash.\\nIf you have control over your hypervisor (ESXi, Proxmox, etc.), you should be able to easily change this.\\nOtherwise contact your host/administrator for assistance.\\n" - exit 1 - fi - -printf "Checking available memory: %sGB detected\\n" "$RAMAVAILABLE" -if [[ "$RAMAVAILABLE" -lt 12 ]]; then - printf "${MSGWARNING} You have less than the required 12GB minmum (%sGB detected) of available RAM to run the game server.\\nIt is likely that the server will fail to load properly.\\n" "$RAMAVAILABLE" -fi - -echo -e "${BLUE}---------------------------------------------------------------------${NC}" -echo -e "${GREEN}Starting Server.... Please wait...${NC}" -echo -e "${BLUE}---------------------------------------------------------------------${NC}" - -## just in case someone removed the defaults. -if [ "${STEAM_USER}" == "" ]; then - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}Steam user is not set. ${NC}" - echo -e "${YELLOW}Using anonymous user.${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - STEAM_USER=anonymous - STEAM_PASS="" - STEAM_AUTH="" -else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}user set to ${STEAM_USER} ${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" -fi - -## if auto_update is not set or to 1 update -if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then - # Update Source Server - if [ ! -z ${STEAM_APPID} ] || [ ! -z ${SRCDS_APPID} ]; then - ./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) $( [[ "${STEAM_SDK}" == "1" ]] && printf %s '+app_update 1007' ) +app_update ${STEAM_APPID} $( [[ -z ${STEAM_BETAID} ]] || printf %s "-beta ${STEAM_BETAID}" ) $( [[ -z ${STEAM_BETAPASS} ]] || printf %s "-betapassword ${STEAM_BETAPASS}" ) ${INSTALL_FLAGS} $( [[ "${VALIDATE}" == "1" ]] && printf %s 'validate' ) +quit - else - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - echo -e "${YELLOW}No appid set. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------------${NC}" - fi - -else - echo -e "${BLUE}---------------------------------------------------------------${NC}" - echo -e "${YELLOW}Not updating game server as auto update was set to 0. Starting Server${NC}" - echo -e "${BLUE}---------------------------------------------------------------${NC}" -fi - -# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile) -export USER_ID=$(id -u) -export GROUP_ID=$(id -g) -envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD} -export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so - -# 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} diff --git a/games/satisfactory/passwd.template b/games/satisfactory/passwd.template deleted file mode 100644 index d14bace5..00000000 --- a/games/satisfactory/passwd.template +++ /dev/null @@ -1,26 +0,0 @@ -root:x:0:0:root:/root:/bin/bash -daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin -bin:x:2:2:bin:/bin:/usr/sbin/nologin -sys:x:3:3:sys:/dev:/usr/sbin/nologin -sync:x:4:65534:sync:/bin:/bin/sync -games:x:5:60:games:/usr/games:/usr/sbin/nologin -man:x:6:12:man:/var/cache/man:/usr/sbin/nologin -lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin -mail:x:8:8:mail:/var/mail:/usr/sbin/nologin -news:x:9:9:news:/var/spool/news:/usr/sbin/nologin -uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin -proxy:x:13:13:proxy:/bin:/usr/sbin/nologin -www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin -backup:x:34:34:backup:/var/backups:/usr/sbin/nologin -list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin -irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin -gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin -nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin -systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false -systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false -systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false -systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false -syslog:x:104:108::/home/syslog:/bin/false -messagebus:x:106:109::/var/run/dbus:/bin/false -bind:x:108:112::/var/cache/bind:/bin/false -${USER_NAME}:x:${USER_ID}:${GROUP_ID}:${USER_NAME}:${HOME}:/bin/bash diff --git a/games/thebattleofwesnoth/Dockerfile b/games/thebattleofwesnoth/Dockerfile deleted file mode 100644 index fce3c99a..00000000 --- a/games/thebattleofwesnoth/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04 - -LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" - -ARG DEBIAN_FRONTEND noninteractive - -# update base packages -RUN apt update \ - && apt upgrade -y - -# install dependencies -RUN apt install -y \ - cmake \ - g++ \ - gcc \ - gdb \ - git \ - openssl \ - tar \ - tini \ - unzip \ - zip \ - zlib1g-dev \ - libboost-coroutine-dev \ - libboost-filesystem-dev \ - libboost-graph-dev \ - libboost-iostreams-dev \ - libboost-locale-dev \ - libboost-program-options-dev \ - libboost-random-dev \ - libboost-regex-dev \ - libboost-system-dev \ - libbz2-dev \ - libc++-dev \ - libc6 \ - libcairo2-dev \ - libcrypto++-dev \ - libcurl4-openssl-dev \ - libgcc1 \ - libsdl-pango-dev \ - libsdl2-dev \ - libsdl2-image-dev \ - libsdl2-mixer-dev \ - libssl-dev \ - libvorbis-dev \ - -# configure locale -RUN update-locale lang=en_US.UTF-8 \ - && dpkg-reconfigure --frontend noninteractive locales - -## 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"] \ No newline at end of file diff --git a/games/thebattleofwesnoth/entrypoint.sh b/games/thebattleofwesnoth/entrypoint.sh deleted file mode 100644 index 6a025fed..00000000 --- a/games/thebattleofwesnoth/entrypoint.sh +++ /dev/null @@ -1,20 +0,0 @@ -# Wait for the container to fully initialize -sleep 1 - -# Default the TZ environment variable to UTC. -TZ=${TZ:-UTC} -export TZ - -# Set environment variable that holds the Internal Docker IP -INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') -export INTERNAL_IP - -# Switch to the container's working directory -cd /home/container || exit 1 - -# 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} \ No newline at end of file diff --git a/java/base/11/Dockerfile b/java/base/11/Dockerfile index b0f08c22..732d45cf 100644 --- a/java/base/11/Dockerfile +++ b/java/base/11/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:11-jdk-jammy +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:11-jdk-noble LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" @@ -25,8 +25,8 @@ RUN apt install -y \ # 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 LANG en_US.UTF-8 +ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ## Setup user and working directory @@ -36,4 +36,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/java/base/17/Dockerfile b/java/base/17/Dockerfile index 9b9b5748..770f6e97 100644 --- a/java/base/17/Dockerfile +++ b/java/base/17/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:17-jdk-jammy +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:17-jdk-noble LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" @@ -25,8 +25,8 @@ RUN apt install -y \ # 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 LANG en_US.UTF-8 +ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ## Setup user and working directory @@ -36,4 +36,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/java/base/21/Dockerfile b/java/base/21/Dockerfile index b5a033ee..3599b799 100644 --- a/java/base/21/Dockerfile +++ b/java/base/21/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-jammy +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-noble LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" @@ -25,8 +25,8 @@ RUN apt install -y \ # 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 LANG en_US.UTF-8 +ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ## Setup user and working directory @@ -36,4 +36,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/java/base/22/Dockerfile b/java/base/22/Dockerfile index 1d9ed96c..f633adec 100644 --- a/java/base/22/Dockerfile +++ b/java/base/22/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:22-jdk-jammy +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:22-jdk-noble LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" @@ -25,8 +25,8 @@ RUN apt install -y \ # 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 LANG en_US.UTF-8 +ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ## Setup user and working directory diff --git a/java/base/23/Dockerfile b/java/base/23/Dockerfile new file mode 100644 index 00000000..5836a9bf --- /dev/null +++ b/java/base/23/Dockerfile @@ -0,0 +1,39 @@ +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:23-jdk-noble + +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 + +RUN apt update -y \ + && apt -y upgrade + +RUN apt install -y \ + ca-certificates \ + curl \ + font-manager \ + fontconfig \ + git \ + iproute2 \ + ipset \ + locales \ + openssl \ + sqlite3 \ + tar \ + tzdata \ + libfreetype6 + +# 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 + +## 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 + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/java/base/8/Dockerfile b/java/base/8/Dockerfile index 7a591622..999111a2 100644 --- a/java/base/8/Dockerfile +++ b/java/base/8/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:8-jdk-jammy +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:8-jdk-noble LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images" @@ -25,8 +25,8 @@ RUN apt install -y \ # 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 LANG en_US.UTF-8 +ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ## Setup user and working directory @@ -36,4 +36,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./../entrypoint.sh /entrypoint.sh -CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file +CMD [ "/bin/bash", "/entrypoint.sh" ]