From b9236d13204e6eb02099b06d2c64ebaf81d70144 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 23 Nov 2024 02:55:34 -0700 Subject: [PATCH] Add Wine 9.21 --- Jenkinsfile | 2 + build.sh | 1 + wine/9.21/Dockerfile | 43 ++++++++++++++++++++ wine/9.21/entrypoint.sh | 90 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 wine/9.21/Dockerfile create mode 100644 wine/9.21/entrypoint.sh diff --git a/Jenkinsfile b/Jenkinsfile index a033b2e..3554787 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -138,6 +138,7 @@ pipeline { docker build -t git.zontreck.com/ariascreations/yolks:wine_8.21 wine/8.21 docker build -t git.zontreck.com/ariascreations/yolks:wine_9.0 wine/9.0 docker build -t git.zontreck.com/ariascreations/yolks:wine_9.16 wine/9.16 + docker build -t git.zontreck.com/ariascreations/yolks:wine_9.21 wine/9.21 ''' } } @@ -157,6 +158,7 @@ pipeline { docker push git.zontreck.com/ariascreations/yolks:wine_8.21 docker push git.zontreck.com/ariascreations/yolks:wine_9.0 docker push git.zontreck.com/ariascreations/yolks:wine_9.16 + docker push git.zontreck.com/ariascreations/yolks:wine_9.21 ''' } } diff --git a/build.sh b/build.sh index 62e3332..bf501f3 100755 --- a/build.sh +++ b/build.sh @@ -24,6 +24,7 @@ docker build -t git.zontreck.com/ariascreations/yolks:wine_8.0 wine/8.0 docker build -t git.zontreck.com/ariascreations/yolks:wine_8.21 wine/8.21 docker build -t git.zontreck.com/ariascreations/yolks:wine_9.0 wine/9.0 docker build -t git.zontreck.com/ariascreations/yolks:wine_9.16 wine/9.16 +docker build -t git.zontreck.com/ariascreations/yolks:wine_9.16 wine/9.21 # Installers docker build -t git.zontreck.com/ariascreations/yolks:installers_alpine installers/alpine diff --git a/wine/9.21/Dockerfile b/wine/9.21/Dockerfile new file mode 100644 index 0000000..ad43319 --- /dev/null +++ b/wine/9.21/Dockerfile @@ -0,0 +1,43 @@ +FROM debian:latest AS BUILDER64 + +RUN dpkg --add-architecture i386 +RUN apt-get update +RUN apt-get upgrade -y +RUN apt-get install -y wget curl rsync +ENV INSTALL_PREFIX /opt/wine + +WORKDIR /tmp +RUN wget https://ci.zontreck.com/job/ThirdParty/job/Wine/job/9.21/lastSuccessfulBuild/artifact/wine.tgz +RUN mkdir wine && cd wine && tar -xvf ../wine.tgz +WORKDIR /tmp/wine +RUN mkdir /opt/wine +RUN rsync -a --progress -h --delete ./ /opt/wine/ + +FROM git.zontreck.com/ariascreations/yolks:debian + +LABEL author="Tara Piccari" maintainer="tarapiccari@gmail.com" +LABEL upstream="https://github.com/pelican-eggs/yolks" + +RUN dpkg --add-architecture i386 + +RUN apt-get update +RUN apt-get install -y gnupg2 numactl tzdata software-properties-common libntlm0 winbind xvfb xauth python3 libncurses5:i386 libncurses6:i386 libsdl2-2.0-0 libsdl2-2.0-0:i386 + +COPY --from=BUILDER64 /opt/wine /opt/wine +RUN export PATH=$PATH:/opt/wine/bin:/opt/wine/sbin + +RUN wget -q -O /usr/sbin/winetricks https://raw.githubusercontent.com/winetricks/winetricks/master/src/winetricks +RUN chmod +x /usr/sbin/winetricks + +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 +ENV AUTO_UPDATE=1 +ENV XVFB=1 + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/wine/9.21/entrypoint.sh b/wine/9.21/entrypoint.sh new file mode 100644 index 0000000..2435c16 --- /dev/null +++ b/wine/9.21/entrypoint.sh @@ -0,0 +1,90 @@ +#!/bin/bash +cd /home/container + +# Information output +echo "Running on Debian $(cat /etc/debian_version)" +echo "Current timezone: $(cat /etc/timezone)" +wine --version + +# Make internal Docker IP address available to processes. +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + +## just in case someone removed the defaults. +if [ "${STEAM_USER}" == "" ]; then + echo -e "steam user is not set.\n" + echo -e "Using anonymous user.\n" + STEAM_USER=anonymous + STEAM_PASS="" + STEAM_AUTH="" +else + echo -e "user set to ${STEAM_USER}" +fi + +## if auto_update is not set or to 1 update +if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then + # Update Source Server + if [ ! -z ${SRCDS_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 ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_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 ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit + fi + else + echo -e "No appid set. Starting Server" + fi + +else + echo -e "Not updating game server as auto update was set to 0. Starting Server" +fi + +if [[ $XVFB == 1 ]]; then + Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} & +fi + +# Install necessary to run packages +echo "First launch will throw some errors. Ignore them" + +mkdir -p $WINEPREFIX + +# Check if wine-gecko required and install it if so +if [[ $WINETRICKS_RUN =~ gecko ]]; then + echo "Installing Gecko" + 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 "Installing mono" + 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.1.0/wine-mono-9.1.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 "Installing $trick" + winetricks -q $trick +done + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} \ No newline at end of file