Skip to content

Commit

Permalink
fix java coretto 21
Browse files Browse the repository at this point in the history
  • Loading branch information
gOOvER committed Aug 19, 2024
1 parent 7e68183 commit b6ce3cc
Show file tree
Hide file tree
Showing 5 changed files with 285 additions and 1 deletion.
156 changes: 156 additions & 0 deletions games/eco/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
FROM --platform=$BUILDPLATFORM debian:bookworm-slim

LABEL author="Torsten Widmann" maintainer="[email protected]"
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

# 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 --install-recommends \
ca-certificates \
curl \
dbus \
dirmngr \
g++ \
gcc \
gcc-12-base \
gdb \
gettext \
git \
gnupg \
iproute2 \
jq \
locales \
mesa-utils \
net-tools \
netcat-openbsd \
numactl \
psmisc \
python3 \
python3-dev \
python3-pip \
sed \
software-properties-common \
speex:i386 \
tar \
telnet \
tini \
tzdata \
wget \
lib32gcc-s1 \
lib32stdc++6 \
lib32tinfo6 \
libtinfo6:i386 \
lib32z1 \
libasound2 \
libatk1.0-0 \
libatomic1 \
libc++-dev \
libc++1 \
libc6 \
libc6:i386 \
libcurl3-gnutls \
libcurl3-gnutls:i386 \
libcurl4 \
libcurl4-gnutls-dev \
libcurl4-gnutls-dev:i386 \
libcurl4:i386 \
libfontconfig \
libgcc-s1 \
libgcc1 \
libgconf-2-4 \
libgdiplus \
libgtk2.0-0:i386 \
libjemalloc2 \
libjemalloc2:i386 \
libnss-wrapper \
libnss3 \
libpangocairo-1.0-0 \
libpulse-dev \
libpulse0 \
libsdl1.2-compat \
libsdl1.2-compat:i386 \
libsdl1.2debian \
libsdl1.2debian:i386 \
libsdl2-2.0-0 \
libsdl2-2.0-0:i386 \
libssl3 \
libssl3:i386 \
libstdc++6 \
libstdc++6:i386 \
libtcmalloc-minimal4 \
libtcmalloc-minimal4:i386 \
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-8.0 \
dotnet-sdk-8.0

RUN wget --no-check-certificate https://aka.ms/dotnet-counters/linux-x64 -O /usr/bin/dotnet-counters
RUN wget --no-check-certificate https://aka.ms/dotnet-dump/linux-x64 -O /usr/bin/dotnet-dump
RUN wget --no-check-certificate https://aka.ms/dotnet-trace/linux-x64 -O /usr/bin/dotnet-trace
RUN chmod +x /usr/bin/dotnet-counters
RUN chmod +x /usr/bin/dotnet-trace
RUN chmod +x /usr/bin/dotnet-dump
RUN mkdir /opt/profiling
RUN wget --no-check-certificate https://download.jetbrains.com/resharper/dotUltimate.2022.3.2/JetBrains.dotTrace.CommandLineTools.linux-x64.2022.3.2.tar.gz -O JetBrains.dotTrace.CommandLineTools.linux-x64.2022.3.2.tar.gz
RUN tar -zxvf JetBrains.dotTrace.CommandLineTools.linux-x64.2022.3.2.tar.gz -C /opt/profiling
RUN rm JetBrains.dotTrace.CommandLineTools.linux-x64.2022.3.2.tar.gz
RUN wget --no-check-certificate https://download.jetbrains.com/resharper/dotUltimate.2022.3.2/JetBrains.dotMemory.Console.linux-x64.2022.3.2.tar.gz -O JetBrains.dotMemory.Console.linux-x64.2022.3.2.tar.gz
RUN tar -zxvf JetBrains.dotMemory.Console.linux-x64.2022.3.2.tar.gz -C /opt/profiling
RUN rm JetBrains.dotMemory.Console.linux-x64.2022.3.2.tar.gz


## 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"]
88 changes: 88 additions & 0 deletions games/eco/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#!/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}SteamCMD 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}"

# Switch to the container's working directory
cd /home/container || exit 1

# writing dotnet infos to file
#dotnetinfo=$(dotnet --info)
#echo $dotnetinfo >| dotnet_info.txt

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' ) $( [[ "${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

# 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}
26 changes: 26 additions & 0 deletions games/eco/passwd.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
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
14 changes: 14 additions & 0 deletions games/eco/sources.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
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
2 changes: 1 addition & 1 deletion java/corretto/21/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ RUN apt install -y \
RUN wget -O- -q https://apt.corretto.aws/corretto.key | apt-key add -
RUN add-apt-repository 'deb https://apt.corretto.aws stable main'
RUN apt update
RUN apt install -y java-22-amazon-corretto-jdk
RUN apt install -y java-21-amazon-corretto-jdk

## configure locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
Expand Down

0 comments on commit b6ce3cc

Please sign in to comment.