- Modify the script to explicitly set the owner of the database directory to root, ensuring proper access for SQLite. - Include error handling to attempt ownership change with sudo if the initial command fails, improving robustness of the script.
48 lines
1.5 KiB
Bash
Executable File
48 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# Quick-Fix für Datenbank-Berechtigungen
|
||
|
||
set -e
|
||
|
||
echo "🔧 Quick-Fix für Datenbank-Berechtigungen..."
|
||
echo ""
|
||
|
||
cd "$(dirname "$0")/.." || exit 1
|
||
|
||
# Setze Berechtigungen
|
||
echo "1️⃣ Setze Berechtigungen..."
|
||
chmod 775 ./data
|
||
chmod 664 ./data/prod.db 2>/dev/null || echo " ⚠️ Datenbankdatei nicht gefunden"
|
||
|
||
# Setze Besitzer auf root (Container läuft als root)
|
||
echo "2️⃣ Setze Besitzer auf root..."
|
||
sudo chown -R root:root ./data
|
||
|
||
# Zeige aktuelle Berechtigungen
|
||
echo ""
|
||
echo "✅ Berechtigungen gesetzt!"
|
||
echo ""
|
||
echo "📋 Aktuelle Berechtigungen:"
|
||
ls -ld ./data
|
||
ls -lh ./data/prod.db 2>/dev/null || echo " (Datei nicht gefunden)"
|
||
echo ""
|
||
|
||
# Teste im Container
|
||
echo "3️⃣ Teste Zugriff im Container..."
|
||
if docker ps | grep -q hoerdle; then
|
||
echo " Container läuft, teste Zugriff..."
|
||
docker exec hoerdle sh -c "test -r /app/data/prod.db && echo '✅ Lesbar' || echo '❌ Nicht lesbar'"
|
||
docker exec hoerdle sh -c "test -w /app/data/prod.db && echo '✅ Schreibbar' || echo '❌ Nicht schreibbar'"
|
||
docker exec hoerdle sh -c "test -w /app/data && echo '✅ Verzeichnis schreibbar' || echo '❌ Verzeichnis nicht schreibbar'"
|
||
else
|
||
echo " ⚠️ Container läuft nicht"
|
||
fi
|
||
|
||
echo ""
|
||
echo "🔄 Starte Container neu..."
|
||
docker compose restart hoerdle 2>/dev/null || echo " ⚠️ Konnte Container nicht neustarten (vielleicht läuft docker compose nicht?)"
|
||
|
||
echo ""
|
||
echo "✅ Fertig! Prüfe jetzt die Logs:"
|
||
echo " docker logs hoerdle --tail=50"
|
||
|