pdns/docker-compose-traefik.yml aktualisiert
This commit is contained in:
@@ -24,18 +24,32 @@ services:
|
|||||||
- |
|
- |
|
||||||
set -eu
|
set -eu
|
||||||
mkdir -p /etc/powerdns/pdns.d
|
mkdir -p /etc/powerdns/pdns.d
|
||||||
|
mkdir -p /data
|
||||||
|
|
||||||
# Suche das Binary an den zwei wahrscheinlichsten Orten
|
# Pfad finden
|
||||||
if [ -f /usr/local/sbin/pdns_server ]; then
|
PDNS_BIN=$$(which pdns_server || echo "/usr/local/sbin/pdns_server")
|
||||||
PDNS_BIN="/usr/local/sbin/pdns_server"
|
|
||||||
elif [ -f /usr/sbin/pdns_server ]; then
|
# 1. SQLite Datenbank initialisieren falls sie fehlt
|
||||||
PDNS_BIN="/usr/sbin/pdns_server"
|
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ] && [ ! -f "$${PDNS_GSQLITE3_DATABASE}" ]; then
|
||||||
else
|
echo "SQLite database not found. Creating and importing schema..."
|
||||||
# Notlösung: Suche im gesamten System
|
# Falls sqlite3 im Image ist, nutzen wir es zum Initialisieren
|
||||||
PDNS_BIN=$$(find /usr -name pdns_server | head -n 1)
|
# 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
|
||||||
|
sqlite3 "$${PDNS_GSQLITE3_DATABASE}" < "$$SCHEMA_PATH"
|
||||||
|
# Rechte sicherstellen
|
||||||
|
chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
|
||||||
|
echo "Schema imported successfully."
|
||||||
|
else
|
||||||
|
echo "Warning: Schema file not found. Touching empty file (PDNS might still fail)."
|
||||||
|
touch "$${PDNS_GSQLITE3_DATABASE}"
|
||||||
|
chmod 666 "$${PDNS_GSQLITE3_DATABASE}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Konfiguration schreiben
|
# 2. 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
|
||||||
@@ -45,18 +59,10 @@ services:
|
|||||||
webserver-allow-from=$${PDNS_API_ALLOW_FROM}
|
webserver-allow-from=$${PDNS_API_ALLOW_FROM}
|
||||||
loglevel=$${PDNS_LOG_LEVEL}
|
loglevel=$${PDNS_LOG_LEVEL}
|
||||||
launch=$${PDNS_LAUNCH}
|
launch=$${PDNS_LAUNCH}
|
||||||
|
gsqlite3-database=$${PDNS_GSQLITE3_DATABASE}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [ "$${PDNS_LAUNCH}" = "gsqlite3" ]; then
|
echo "Starting PowerDNS..."
|
||||||
echo "gsqlite3-database=$${PDNS_GSQLITE3_DATABASE}" >> /etc/powerdns/pdns.d/99-env.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$$PDNS_BIN" ]; then
|
|
||||||
echo "ERROR: pdns_server not found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Generated config. Starting $$PDNS_BIN..."
|
|
||||||
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