add support for Debian Bookworm / PowerDNS 4.6
This commit is contained in:
parent
043c456fdf
commit
aec33942bb
@ -5,6 +5,11 @@
|
||||
* Bind backend support only
|
||||
* DNSSEC support (optional per zone)
|
||||
|
||||
# Supported tags and respective `Dockerfile` links
|
||||
|
||||
- [`4.6-bookworm`, `latest`](https://github.com/pommi/docker-powerdns/blob/master/debian/12/Dockerfile)
|
||||
- [`4.4-bullseye`](https://github.com/pommi/docker-powerdns/blob/master/debian/11/Dockerfile)
|
||||
|
||||
# Usage
|
||||
|
||||
```
|
||||
@ -32,7 +37,7 @@ $ docker run -it \
|
||||
-v $(pwd)/named.conf:/etc/powerdns/named.conf \
|
||||
-v $(pwd)/zones/:/var/lib/powerdns/zones/ \
|
||||
-p 5353:53/udp -p 5353:53 \
|
||||
pommib/powerdns:4.4-bullseye
|
||||
pommib/powerdns:latest
|
||||
|
||||
$ dig +short @127.0.0.1 -p5353 example.tld A
|
||||
192.0.2.1
|
||||
@ -46,7 +51,7 @@ version: "3"
|
||||
services:
|
||||
powerdns:
|
||||
container_name: powerdns
|
||||
image: pommib/powerdns:4.4-bullseye
|
||||
image: pommib/powerdns:latest
|
||||
ports:
|
||||
- "5353:53/tcp"
|
||||
- "5353:53/udp"
|
||||
|
21
debian/12/Dockerfile
vendored
Normal file
21
debian/12/Dockerfile
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN set -eux; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
pdns-server \
|
||||
pdns-backend-bind \
|
||||
sqlite3 \
|
||||
bind9-dnsutils \
|
||||
inotify-tools \
|
||||
; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ADD start.sh /
|
||||
|
||||
EXPOSE 53/tcp 53/udp
|
||||
VOLUME ["/var/lib/powerdns"]
|
||||
|
||||
CMD /start.sh
|
||||
|
||||
HEALTHCHECK CMD dig +timeout=1 @127.0.0.1 || exit 1
|
30
debian/12/start.sh
vendored
Executable file
30
debian/12/start.sh
vendored
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# create sqlite database for DNSSEC
|
||||
if test ! -e /var/lib/powerdns/bind-dnssec-db.sqlite3; then
|
||||
echo [$0] Initializing /var/lib/powerdns/bind-dnssec-db.sqlite3
|
||||
/usr/bin/pdnsutil create-bind-db /var/lib/powerdns/bind-dnssec-db.sqlite3
|
||||
fi
|
||||
sed -i 's/^# bind-dnssec-db=/bind-dnssec-db=\/var\/lib\/powerdns\/bind-dnssec-db.sqlite3/' /etc/powerdns/pdns.d/bind.conf
|
||||
|
||||
# start powerdns server
|
||||
/usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no &
|
||||
|
||||
# watch for zone changes
|
||||
inotifywait -mqre modify --exclude '\.git' --format '%w%f' "/var/lib/powerdns/zones/" |
|
||||
while read -r path; do
|
||||
zone=$(basename $path)
|
||||
echo [$0] A modification was detected in $path
|
||||
echo [$0] Executing \`/usr/bin/pdns_control bind-reload-now $zone\`
|
||||
/usr/bin/pdns_control bind-reload-now $zone
|
||||
if pdnsutil show-zone $zone 2>/dev/null | grep -q "Zone is not actively secured"; then
|
||||
echo [$0] Zone is not actively secured, skipping \`pdnsutil rectify-zone $zone\`
|
||||
else
|
||||
echo [$0] DNSSEC secured zone. Executing \`pdnsutil rectify-zone $zone\`
|
||||
/usr/bin/pdnsutil rectify-zone $zone
|
||||
fi
|
||||
done &
|
||||
|
||||
wait -n
|
||||
|
||||
exit $?
|
Loading…
Reference in New Issue
Block a user