Refactor entrypoint script: enhance Wine initialization process and remove obsolete test script
This commit is contained in:
@@ -8,37 +8,48 @@ export INTERNAL_IP
|
||||
# set this variable, dotnet needs it even without it it reports to `dotnet --info` it can not start any aplication without this
|
||||
export DOTNET_ROOT=/usr/share/
|
||||
|
||||
# Fix X11 permissions
|
||||
mkdir -p /tmp/.X11-unix
|
||||
chmod 1777 /tmp/.X11-unix
|
||||
|
||||
# Start Xvfb for Wine (virtual display)
|
||||
Xvfb :99 -screen 0 1024x768x16 &
|
||||
export DISPLAY=:99.0
|
||||
|
||||
# Wait for Xvfb to start
|
||||
sleep 2
|
||||
sleep 3
|
||||
|
||||
# Initialize Wine prefix if it doesn't exist
|
||||
if [ ! -d "$WINEPREFIX" ]; then
|
||||
echo "Initializing Wine prefix..."
|
||||
# Force reinitialize Wine prefix to ensure it's properly set up
|
||||
echo "Reinitializing Wine prefix to ensure proper setup..."
|
||||
rm -rf "$WINEPREFIX"
|
||||
|
||||
# Set Wine architecture to 64-bit
|
||||
export WINEARCH=win64
|
||||
|
||||
# Initialize Wine prefix
|
||||
echo "Creating new Wine prefix..."
|
||||
wineboot --init
|
||||
|
||||
# Wait for wineboot to complete
|
||||
sleep 10
|
||||
|
||||
# Test if Wine can load basic Windows DLLs
|
||||
echo "Testing Wine installation..."
|
||||
if ! wine cmd /c "echo Wine test successful"; then
|
||||
echo "Wine initialization failed, trying again..."
|
||||
rm -rf "$WINEPREFIX"
|
||||
wineboot --init
|
||||
sleep 15
|
||||
|
||||
# Wait for wineboot to complete
|
||||
sleep 5
|
||||
|
||||
# Install essential Windows components
|
||||
winetricks -q corefonts vcrun2019 dotnet48
|
||||
|
||||
echo "Wine initialization complete."
|
||||
else
|
||||
echo "Wine prefix already exists, checking if it's working..."
|
||||
# Test if Wine is working properly
|
||||
if ! wine --version > /dev/null 2>&1; then
|
||||
echo "Wine prefix seems corrupted, reinitializing..."
|
||||
rm -rf "$WINEPREFIX"
|
||||
wineboot --init
|
||||
sleep 5
|
||||
winetricks -q corefonts vcrun2019 dotnet48
|
||||
# Try again
|
||||
if ! wine cmd /c "echo Wine test successful"; then
|
||||
echo "Wine installation appears to be broken"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Wine initialization complete and verified."
|
||||
|
||||
# print the dotnet version on startup
|
||||
printf "\033[1m\033[33mcontainer@pelican~ \033[0mdotnet --version\n"
|
||||
dotnet --version
|
||||
|
Reference in New Issue
Block a user