Scripts/docker/ci-wine.Dockerfile

36 lines
2.4 KiB
Docker

FROM archlinux:base-devel
LABEL authors="johannes"
RUN printf "[multilib]\nInclude = /etc/pacman.d/mirrorlist\n" >> /etc/pacman.conf
RUN pacman --noconfirm -Syu curl &&\
curl https://git.frohnmeyer-wds.de/Johannes/jdk19-temurin/raw/branch/master/jdk19-temurin-19.0.2.u7-2-x86_64.pkg.tar.zst -Lo jdk19-temurin.pkg.tar.zst &&\
pacman --noconfirm -U jdk19-temurin.pkg.tar.zst &&\
rm jdk19-temurin.pkg.tar.zst &&\
pacman --noconfirm -S p7zip zip unzip jq git mdbook gradle wine winetricks gnutls xorg-server-xvfb lib32-gnutls libunwind dpkg fakeroot
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/19/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