65 lines
1.8 KiB
Bash
65 lines
1.8 KiB
Bash
#!/bin/bash
|
|
cd /home/container
|
|
|
|
# Set environment variable that holds the Internal Docker IP
|
|
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
|
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 -ac &
|
|
export DISPLAY=:99.0
|
|
|
|
# Wait for Xvfb to start
|
|
sleep 5
|
|
|
|
# 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 synchronously with timeout
|
|
echo "Creating new Wine prefix..."
|
|
timeout 30 wineboot --init || echo "Wineboot timed out, continuing..."
|
|
|
|
# Wait a bit more for any background processes
|
|
sleep 5
|
|
|
|
# Kill any hanging wine processes
|
|
pkill -f wine || true
|
|
|
|
# Skip winetricks for now as it may cause issues
|
|
echo "Skipping winetricks installation to avoid hanging..."
|
|
|
|
# Test Wine installation with a simple command
|
|
echo "Testing Wine installation..."
|
|
timeout 10 wine cmd /c "echo Wine test successful" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "Wine initialization complete and verified."
|
|
else
|
|
echo "Wine test failed, but Wine prefix was created. Continuing..."
|
|
fi
|
|
|
|
# print the dotnet version on startup
|
|
printf "\033[1m\033[33mcontainer@pelican~ \033[0mdotnet --version\n"
|
|
dotnet --version
|
|
|
|
# print the wine version on startup
|
|
printf "\033[1m\033[33mcontainer@pelican~ \033[0mwine --version\n"
|
|
wine --version
|
|
|
|
# Replace Startup Variables
|
|
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
|
|
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
|
|
|
|
# Run the Server
|
|
eval ${MODIFIED_STARTUP}
|