pdns/docker-compose-traefik.yml aktualisiert

This commit is contained in:
2026-01-03 03:03:33 +00:00
parent b1862e6113
commit d8e0b7cd3d

View File

@@ -24,32 +24,35 @@ services:
- | - |
set -eu set -eu
mkdir -p /etc/powerdns/pdns.d mkdir -p /etc/powerdns/pdns.d
mkdir -p /data
# Pfad finden # Sicherstellen, dass der /data Ordner existiert und beschreibbar ist
mkdir -p /data
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")
# 1. SQLite Datenbank initialisieren falls sie fehlt
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$${PDNS_GSQLITE3_DATABASE}" ]; then if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$${PDNS_GSQLITE3_DATABASE}" ]; then
echo "SQLite database not found. Creating and importing schema..." echo "SQLite database not found. Creating and importing schema..."
# Falls sqlite3 im Image ist, nutzen wir es zum Initialisieren
# Das Schema liegt bei PDNS 4.9 oft hier:
SCHEMA_PATH="/usr/local/share/doc/pdns/schema.sqlite3.sql"
[ -f "$$SCHEMA_PATH" ] || SCHEMA_PATH="/usr/share/doc/pdns/schema.sqlite3.sql"
if [ -f "$$SCHEMA_PATH" ]; then # Suche nach dem Schema-File
sqlite3 "$${PDNS_GSQLITE3_DATABASE}" < "$$SCHEMA_PATH" for f in /usr/local/share/doc/pdns/schema.sqlite3.sql /usr/share/doc/pdns/schema.sqlite3.sql /etc/powerdns/schema.sqlite3.sql; do
# Rechte sicherstellen 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}" chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
sqlite3 "$${PDNS_GSQLITE3_DATABASE}" < "$$SCHEMA_PATH"
echo "Schema imported successfully." echo "Schema imported successfully."
else else
echo "Warning: Schema file not found. Touching empty file (PDNS might still fail)." echo "Warning: No schema file found. Initializing empty file."
touch "$${PDNS_GSQLITE3_DATABASE}" touch "$${PDNS_GSQLITE3_DATABASE}"
chmod 666 "$${PDNS_GSQLITE3_DATABASE}" chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
fi fi
fi fi
# 2. Konfiguration schreiben # Konfiguration 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