services: db: image: postgres:16 container_name: pdns-db environment: POSTGRES_DB: pdns POSTGRES_USER: pdns POSTGRES_PASSWORD: pdns_strong_password networks: powerdns_default: ipv4_address: 192.168.156.9 volumes: - pdns_pgdata:/var/lib/postgresql/data - ./postgres-init:/docker-entrypoint-initdb.d:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U pdns -d pdns"] interval: 5s timeout: 3s retries: 20 pdns: image: powerdns/pdns-auth-49 container_name: pdns-auth depends_on: db: condition: service_healthy ports: - "127.0.0.1:5300:5300/tcp" - "127.0.0.1:5300:5300/udp" - "192.168.22.8:8089:8081/tcp" networks: powerdns_default: ipv4_address: 192.168.156.10 volumes: - ./pdns/pdns.conf:/etc/powerdns/pdns.conf:ro - ./pdns.d:/etc/powerdns/pdns.d:rw restart: unless-stopped recursor: image: powerdns/pdns-recursor-55 container_name: pdns-recursor depends_on: - pdns ports: - "192.168.22.8:53:53/udp" - "192.168.22.8:53:53/tcp" networks: powerdns_default: ipv4_address: 192.168.156.11 command: - "--local-address=0.0.0.0" - "--local-port=53" - "--allow-from=192.168.22.0/24,127.0.0.1/32,192.168.156.0/24" - "--forward-zones=example.com=192.168.156.10:53" - "--forward-zones-recurse=.=8.8.8.8;1.1.1.1" - "--dont-query=127.0.0.0/8,::1/128" - "--log-common-errors=yes" restart: unless-stopped volumes: pdns_pgdata: networks: powerdns_default: external: true