diff --git a/pdns/docker-compose-traefik.yml b/pdns/docker-compose-traefik.yml index 7831ea7..9ef3ac8 100644 --- a/pdns/docker-compose-traefik.yml +++ b/pdns/docker-compose-traefik.yml @@ -25,34 +25,32 @@ services: set -eu mkdir -p /etc/powerdns/pdns.d - # Sicherstellen, dass der /data Ordner existiert und beschreibbar ist - mkdir -p /data - chmod 777 /data + # Versuche Verzeichnis-Rechte zu setzen, ignoriere Fehler (Operation not permitted) + chmod 777 /data || echo "Could not change /data permissions, hoping for the best..." PDNS_BIN=$$(which pdns_server || echo "/usr/local/sbin/pdns_server") - - if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$${PDNS_GSQLITE3_DATABASE}" ]; then - echo "SQLite database not found. Creating and importing schema..." + DB_FILE="$${PDNS_GSQLITE3_DATABASE}" + + if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$$DB_FILE" ]; then + echo "Initialisierung der Datenbank in $$DB_FILE" - # Suche nach dem Schema-File - for f in /usr/local/share/doc/pdns/schema.sqlite3.sql /usr/share/doc/pdns/schema.sqlite3.sql /etc/powerdns/schema.sqlite3.sql; do - if [ -f "$$f" ]; then SCHEMA_PATH="$$f"; break; fi - done - - if [ -n "$${SCHEMA_PATH:-}" ]; then - # Erstelle die Datei und setze sofort Rechte - touch "$${PDNS_GSQLITE3_DATABASE}" - chmod 666 "$${PDNS_GSQLITE3_DATABASE}" - sqlite3 "$${PDNS_GSQLITE3_DATABASE}" < "$$SCHEMA_PATH" - echo "Schema imported successfully." + # Wir versuchen die Datei direkt zu erzeugen + # Wenn das fehlschlägt, liegt es am Host-Mount + if touch "$$DB_FILE" 2>/dev/null; then + chmod 666 "$$DB_FILE" + # Schema suchen + SCHEMA=$$(find /usr -name schema.sqlite3.sql | head -n 1) + if [ -n "$$SCHEMA" ]; then + sqlite3 "$$DB_FILE" < "$$SCHEMA" + echo "Schema erfolgreich importiert." + fi else - echo "Warning: No schema file found. Initializing empty file." - touch "$${PDNS_GSQLITE3_DATABASE}" - chmod 666 "$${PDNS_GSQLITE3_DATABASE}" + echo "FATAL: Keine Schreibrechte in /data. Bitte auf dem Host 'chmod 777' auf das Verzeichnis ausführen!" + exit 1 fi fi - # Konfiguration schreiben + # Config schreiben cat > /etc/powerdns/pdns.d/99-env.conf <