pdns/docker-compose-traefik.yml aktualisiert

This commit is contained in:
2026-01-03 03:04:40 +00:00
parent d8e0b7cd3d
commit e02d273154

View File

@@ -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