72 lines
3.3 KiB
Docker
72 lines
3.3 KiB
Docker
FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
|
|
|
|
LABEL author="Torsten Widmann" maintainer="info@goover.de"
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt update -y \
|
|
&& apt upgrade -y \
|
|
&& apt install -y apt-transport-https wget curl iproute2 libgdiplus tini \
|
|
&& wget https://dot.net/v1/dotnet-install.sh \
|
|
&& D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/9.0 | grep -i '<h3 id="sdk-9.*">SDK 9.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
|
|
&& chmod +x dotnet-install.sh \
|
|
&& ./dotnet-install.sh -i /usr/share -v $D_V \
|
|
&& ln -s /usr/share/dotnet /usr/bin/dotnet
|
|
|
|
# Install Wine and dependencies
|
|
RUN dpkg --add-architecture i386 \
|
|
&& apt update -y \
|
|
&& apt install -y software-properties-common gnupg2 ca-certificates \
|
|
&& wget -qO - https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor -o /usr/share/keyrings/winehq-archive-keyring.gpg \
|
|
&& echo "deb [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/debian/ bullseye main" >> /etc/apt/sources.list.d/winehq.list \
|
|
&& apt update -y \
|
|
&& apt install -y --install-recommends winehq-stable \
|
|
&& apt install -y xvfb cabextract \
|
|
&& wget -q https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /usr/local/bin/winetricks \
|
|
&& chmod +x /usr/local/bin/winetricks \
|
|
&& apt clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Setup Wine environment for .NET installation
|
|
ENV WINEARCH=win64
|
|
ENV WINEPREFIX=/opt/wine
|
|
ENV DISPLAY=:99.0
|
|
ENV WINEDLLOVERRIDES="mscoree,mshtml="
|
|
|
|
# Initialize Wine and install .NET for Windows
|
|
RUN mkdir -p /tmp/.X11-unix \
|
|
&& chmod 1777 /tmp/.X11-unix \
|
|
&& Xvfb :99 -screen 0 1024x768x16 -ac & \
|
|
&& sleep 3 \
|
|
&& timeout 60 wine wineboot --init \
|
|
&& sleep 5 \
|
|
&& cd /tmp \
|
|
&& wget -q https://download.microsoft.com/download/6/6/1/661c9a9c-9c54-4f8b-b1c6-89d88c0f3d68/dotnet-runtime-9.0.6-win-x64.exe \
|
|
&& timeout 180 wine dotnet-runtime-9.0.6-win-x64.exe /quiet /install \
|
|
&& wget -q https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.301/dotnet-sdk-9.0.301-win-x64.exe \
|
|
&& timeout 180 wine dotnet-sdk-9.0.301-win-x64.exe /quiet /install \
|
|
&& rm -f *.exe \
|
|
&& pkill Xvfb \
|
|
&& chown -R container:container /opt/wine
|
|
|
|
USER container
|
|
ENV USER=container HOME=/home/container
|
|
|
|
# Wine environment variables
|
|
ENV WINEARCH=win64
|
|
ENV WINEPREFIX=/home/container/.wine
|
|
ENV DISPLAY=:99.0
|
|
ENV WINEDLLOVERRIDES="mscoree,mshtml="
|
|
|
|
# Copy the pre-configured Wine prefix to user directory
|
|
RUN cp -r /opt/wine /home/container/.wine \
|
|
&& chown -R container:container /home/container/.wine
|
|
|
|
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"] |