Scripts/docker/ci-wine.Dockerfile

42 lines
2.8 KiB
Docker

FROM archlinux:base-devel
LABEL authors="johannes"
LABEL org.opencontainers.image.title="CI with Wine"
LABEL org.opencontainers.image.description="Arch-based image containing a JDK, gradle, wine, WiX and supporting scripts"
LABEL org.opencontainers.image.authors="JFronny"
LABEL org.opencontainers.image.url="https://git.frohnmeyer-wds.de/Johannes/Scripts/src/branch/master/docker"
LABEL org.opencontainers.image.documentation="https://git.frohnmeyer-wds.de/Johannes/Scripts/src/branch/master/docker"
LABEL org.opencontainers.image.source="https://git.frohnmeyer-wds.de/Johannes/Scripts"
LABEL org.opencontainers.image.licenses="GPL-3.0-or-later"
RUN printf "[multilib]\nInclude = /etc/pacman.d/mirrorlist\n" >> /etc/pacman.conf
RUN pacman --noconfirm -Syu curl p7zip zip unzip jq git mdbook wine winetricks gnutls xorg-server-xvfb lib32-gnutls libunwind dpkg fakeroot jdk-openjdk &&\
pacman --noconfirm -Sdd gradle &&\
rm -rf /var/cache/pacman/pkg
RUN curl https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -Lo wix.zip &&\
mkdir -p root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin &&\
unzip wix.zip -d root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin &&\
rm wix.zip
RUN curl https://api.adoptium.net/v3/binary/latest/22/ga/windows/x64/jdk/hotspot/normal/eclipse?project=jdk -Lo adoptium.zip &&\
mkdir root/java &&\
unzip adoptium.zip -d root/java &&\
mv root/java/*/* root/java &&\
rm adoptium.zip
ENV WINEDEBUG=-all
RUN wine wineboot --init &&\
while pgrep wineserver > /dev/null; do sleep 1; done &&\
winetricks --unattended win10 &&\
winetricks --unattended --force dotnet48
RUN mv root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/light.exe root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/light.exe.original.exe &&\
curl https://gitlab.com/api/v4/projects/34738832/jobs/artifacts/master/raw/dargl.exe?job=natives -Lo root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/light.exe &&\
echo "-sval" > root/.wine/drive_c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.11/bin/light.exe.args.txt &&\
mkdir -p /root/jpackage-win/bin &&\
ln -s /root/java/jmods /root/jpackage-win/jmods &&\
printf "#\!/bin/bash\n/usr/lib/jvm/default/bin/java \"\$@\"\n" > /root/jpackage-win/bin/java &&\
chmod a+x /root/jpackage-win/bin/java &&\
printf "#\!/bin/bash\n/usr/lib/jvm/default/bin/javac \"\$@\"\n" > /root/jpackage-win/bin/javac &&\
chmod a+x /root/jpackage-win/bin/javac &&\
printf "#\!/bin/bash\n/usr/lib/jvm/default/bin/jlink \"\$@\"\n" > /root/jpackage-win/bin/jlink &&\
chmod a+x /root/jpackage-win/bin/jlink &&\
printf "#\!/bin/bash\nwine64 /root/java/bin/jpackage.exe \"\$@\"\n" > /root/jpackage-win/bin/jpackage &&\
chmod a+x /root/jpackage-win/bin/jpackage