Refactor Dockerfile and entrypoint script: streamline .NET installation process in Wine and enhance Wine prefix initialization

This commit is contained in:
2025-07-07 14:22:33 +02:00
parent 65e658ce80
commit 34ba226952
2 changed files with 34 additions and 25 deletions

View File

@@ -22,36 +22,19 @@ export WINEARCH=win64
export WINEPREFIX=/home/container/.wine
export WINEDLLOVERRIDES="mscoree,mshtml="
# Always reinitialize Wine prefix to ensure it works
echo "Reinitializing Wine prefix..."
rm -rf "$WINEPREFIX"
# Initialize Wine prefix with timeout to prevent hanging
echo "Creating Wine prefix..."
timeout 60 wine wineboot --init || echo "Wine initialization timed out, continuing..."
# Wait for Wine to settle
sleep 5
# Check if Wine prefix exists, if not copy from template
if [ ! -d "$WINEPREFIX" ]; then
echo "Wine prefix not found, this should not happen in Docker..."
# Fallback: reinitialize if needed
echo "Reinitializing Wine prefix..."
timeout 60 wine wineboot --init || echo "Wine initialization timed out"
sleep 5
fi
# Test if Wine works
echo "Testing Wine..."
if timeout 10 wine cmd /c "echo Wine works"; then
echo "Wine test successful"
# Install .NET Runtime for Windows in Wine
echo "Installing .NET Runtime for Windows..."
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 120 wine dotnet-runtime-9.0.6-win-x64.exe /quiet /install || echo "Runtime installation timed out"
rm -f dotnet-runtime-9.0.6-win-x64.exe
# Also install .NET SDK for Windows
echo "Installing .NET SDK for Windows..."
wget -q https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.301/dotnet-sdk-9.0.301-win-x64.exe
timeout 120 wine dotnet-sdk-9.0.301-win-x64.exe /quiet /install || echo "SDK installation timed out"
rm -f dotnet-sdk-9.0.301-win-x64.exe
cd /home/container
else
echo "Wine test failed, but continuing..."
fi