Summary
Hi! So I'm trying to run herald in compose, with host Docker Daemon input, to generate probably .zone file out of it (So I can give it to dnsmasq probably). I want to dynamicly get DNS records of my running containers in that Daemon.
Steps to reproduce
/output/zone and /output/hosts have chmod 666.
I do have logs in debug mode when I restart some containers on my Daemon.
But my output files not being touched at all. I do not have warnings or errors about it :(
What is the expected correct behavior?
Zone and Hosts files must have DNS records
Relevant logs and/or screenshots
herald.yml
outputs:
zone:
type: file
format: zone
path: "/output/zone"
domain: local
soa:
primary_ns: ns1.local
admin_email: admin@local
serial: auto
ns_records:
- ns1.local
- ns2.local
hosts:
type: file
format: hosts
path: "/output/hosts"
domains: ["example.com"]
# DNS Resolution Control Options:
flatten_cnames: true # Enable CNAME to A record flattening (default: true)
dns_server: "1.1.1.1" # Use external DNS server (Cloudflare)
resolve_external: true # Force external DNS resolution
ip_override: "192.168.1.100" # Override all resolved IPs with this address`
domains:
domain_01:
name: local
profiles:
inputs:
- docker_input
outputs:
- zone
- hosts
record:
type: A
target: "server.example.com" # Default target for new records
ttl: 300
update_existing: true
allow_multiple: false
Herald Logs: Input Docker
2025-11-27 10:14:44 INFO [docker/connection-manager/tcp://172.17.0.1:2375] Started shared event streaming
2025-11-27.10:14:44 [STARTING] ** [scheduling] Starting cron
2025-11-27 10:15:48 INFO [input/docker/docker_input] Container stopped: herald-test (8a5df7d48f2c), removing DNS records for this container only
2025-11-27 10:15:48 INFO [input/docker/docker_input] Container started: herald-test (8a5df7d48f2c), processing DNS records for this container only
2025-11-27 10:15:48 INFO [input/docker/docker_input] Container stopped: crazy_kalam (c2c09f512f5d), removing DNS records for this container only
2025-11-27 10:15:48 INFO [input/docker/docker_input] Container started: crazy_kalam (c2c09f512f5d), processing DNS records for this container only
Herald Logs: Init config
2025-11-27 10:14:44 INFO [config] Using config file: /config/herald.yml
2025-11-27 10:14:44 INFO [output] Registered output profile 'hosts' (hosts)
2025-11-27 10:14:44 INFO [output] Registered output profile 'hosts_file' (hosts)
Environment
- Image version / tag: nfrastack/herald:latest, Herald version: 2.3.1
- Host OS: Debian 12
Any logs | docker-compose.yml
services:
herald:
image: docker.io/nfrastack/herald
environment:
- DEBUG_MODE=TRUE
- HERALD_SETUP_TYPE=manual
volumes:
- ./herald/herald.yml:/config/herald.yml:ro
- ./herald/logs:/logs
- ./herald/output:/output
restart: unless-stopped
Summary
Hi! So I'm trying to run herald in compose, with host Docker Daemon input, to generate probably .zone file out of it (So I can give it to dnsmasq probably). I want to dynamicly get DNS records of my running containers in that Daemon.
Steps to reproduce
/output/zone and /output/hosts have chmod 666.
I do have logs in debug mode when I restart some containers on my Daemon.
But my output files not being touched at all. I do not have warnings or errors about it :(
What is the expected correct behavior?
Zone and Hosts files must have DNS records
Relevant logs and/or screenshots
herald.yml
Herald Logs: Input Docker
Herald Logs: Init config
Environment
Any logs | docker-compose.yml