pdns/docker-compose-traefik.yml aktualisiert
This commit is contained in:
@@ -25,34 +25,32 @@ services:
|
|||||||
set -eu
|
set -eu
|
||||||
mkdir -p /etc/powerdns/pdns.d
|
mkdir -p /etc/powerdns/pdns.d
|
||||||
|
|
||||||
# Sicherstellen, dass der /data Ordner existiert und beschreibbar ist
|
# Versuche Verzeichnis-Rechte zu setzen, ignoriere Fehler (Operation not permitted)
|
||||||
mkdir -p /data
|
chmod 777 /data || echo "Could not change /data permissions, hoping for the best..."
|
||||||
chmod 777 /data
|
|
||||||
|
|
||||||
PDNS_BIN=$$(which pdns_server || echo "/usr/local/sbin/pdns_server")
|
PDNS_BIN=$$(which pdns_server || echo "/usr/local/sbin/pdns_server")
|
||||||
|
DB_FILE="$${PDNS_GSQLITE3_DATABASE}"
|
||||||
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$${PDNS_GSQLITE3_DATABASE}" ]; then
|
|
||||||
echo "SQLite database not found. Creating and importing schema..."
|
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$$DB_FILE" ]; then
|
||||||
|
echo "Initialisierung der Datenbank in $$DB_FILE"
|
||||||
|
|
||||||
# Suche nach dem Schema-File
|
# Wir versuchen die Datei direkt zu erzeugen
|
||||||
for f in /usr/local/share/doc/pdns/schema.sqlite3.sql /usr/share/doc/pdns/schema.sqlite3.sql /etc/powerdns/schema.sqlite3.sql; do
|
# Wenn das fehlschlägt, liegt es am Host-Mount
|
||||||
if [ -f "$$f" ]; then SCHEMA_PATH="$$f"; break; fi
|
if touch "$$DB_FILE" 2>/dev/null; then
|
||||||
done
|
chmod 666 "$$DB_FILE"
|
||||||
|
# Schema suchen
|
||||||
if [ -n "$${SCHEMA_PATH:-}" ]; then
|
SCHEMA=$$(find /usr -name schema.sqlite3.sql | head -n 1)
|
||||||
# Erstelle die Datei und setze sofort Rechte
|
if [ -n "$$SCHEMA" ]; then
|
||||||
touch "$${PDNS_GSQLITE3_DATABASE}"
|
sqlite3 "$$DB_FILE" < "$$SCHEMA"
|
||||||
chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
|
echo "Schema erfolgreich importiert."
|
||||||
sqlite3 "$${PDNS_GSQLITE3_DATABASE}" < "$$SCHEMA_PATH"
|
fi
|
||||||
echo "Schema imported successfully."
|
|
||||||
else
|
else
|
||||||
echo "Warning: No schema file found. Initializing empty file."
|
echo "FATAL: Keine Schreibrechte in /data. Bitte auf dem Host 'chmod 777' auf das Verzeichnis ausführen!"
|
||||||
touch "$${PDNS_GSQLITE3_DATABASE}"
|
exit 1
|
||||||
chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Konfiguration schreiben
|
# Config schreiben
|
||||||
cat > /etc/powerdns/pdns.d/99-env.conf <<EOF
|
cat > /etc/powerdns/pdns.d/99-env.conf <<EOF
|
||||||
api=yes
|
api=yes
|
||||||
webserver=yes
|
webserver=yes
|
||||||
@@ -60,12 +58,10 @@ services:
|
|||||||
webserver-port=8081
|
webserver-port=8081
|
||||||
api-key=$${PDNS_API_KEY}
|
api-key=$${PDNS_API_KEY}
|
||||||
webserver-allow-from=$${PDNS_API_ALLOW_FROM}
|
webserver-allow-from=$${PDNS_API_ALLOW_FROM}
|
||||||
loglevel=$${PDNS_LOG_LEVEL}
|
launch=gsqlite3
|
||||||
launch=$${PDNS_LAUNCH}
|
gsqlite3-database=$$DB_FILE
|
||||||
gsqlite3-database=$${PDNS_GSQLITE3_DATABASE}
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "Starting PowerDNS..."
|
|
||||||
exec $$PDNS_BIN --daemon=no --guardian=no --control-console
|
exec $$PDNS_BIN --daemon=no --guardian=no --control-console
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user