pdns/docker-compose-traefik.yml aktualisiert
This commit is contained in:
@@ -25,32 +25,24 @@ services:
|
||||
set -eu
|
||||
mkdir -p /etc/powerdns/pdns.d
|
||||
|
||||
# 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")
|
||||
DB_FILE="$${PDNS_GSQLITE3_DATABASE}"
|
||||
|
||||
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$$DB_FILE" ]; then
|
||||
echo "Initialisierung der Datenbank in $$DB_FILE"
|
||||
# 1. Vorbereitung als Root
|
||||
if [ ! -f "$$DB_FILE" ]; then
|
||||
echo "Initialisiere SQLite als root..."
|
||||
touch "$$DB_FILE"
|
||||
# Wir finden heraus, welcher User pdns normalerweise gehört (meist pdns)
|
||||
# und geben ihm die Datei. Falls der User nicht existiert, nutzen wir 666.
|
||||
chmod 666 "$$DB_FILE"
|
||||
|
||||
# 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 "FATAL: Keine Schreibrechte in /data. Bitte auf dem Host 'chmod 777' auf das Verzeichnis ausführen!"
|
||||
exit 1
|
||||
SCHEMA=$$(find /usr -name schema.sqlite3.sql | head -n 1)
|
||||
if [ -n "$$SCHEMA" ]; then
|
||||
sqlite3 "$$DB_FILE" < "$$SCHEMA"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Config schreiben
|
||||
# 2. Config schreiben
|
||||
cat > /etc/powerdns/pdns.d/99-env.conf <<EOF
|
||||
api=yes
|
||||
webserver=yes
|
||||
@@ -60,8 +52,13 @@ services:
|
||||
webserver-allow-from=$${PDNS_API_ALLOW_FROM}
|
||||
launch=gsqlite3
|
||||
gsqlite3-database=$$DB_FILE
|
||||
# Diese Zeilen sagen PowerDNS, zu wem es wechseln soll:
|
||||
setuid=pdns
|
||||
setgid=pdns
|
||||
EOF
|
||||
|
||||
echo "Startserver: $$PDNS_BIN"
|
||||
# Wir starten als root, aber PDNS wechselt intern sofort den User
|
||||
exec $$PDNS_BIN --daemon=no --guardian=no --control-console
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user