powerdns-docker/docker-compose.yml
2025-03-11 09:31:32 +01:00

98 lines
2.6 KiB
YAML

version: '3'
services:
# MariaDB-Datenbank für PowerDNS Server
mysql:
image: mariadb:11
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${PDNS_DB_PASSWORD}
MYSQL_DATABASE: ${PDNS_DB_NAME}
MYSQL_USER: pdns_user
MYSQL_PASSWORD: ${PDNS_DB_PASSWORD}
volumes:
- ./pdns-mysql-data:/var/lib/mysql
networks:
- pdns-network
healthcheck:
test: [ "CMD-SHELL", 'mysqladmin ping' ]
interval: 10s
timeout: 2s
retries: 10
# MariaDB-Datenbank für PowerDNS Admin
mysql-admin:
image: mariadb:11
container_name: mysql-admin
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${PDNS_ADMIN_DB_PASSWORD}
MYSQL_DATABASE: ${PDNS_ADMIN_DB_NAME}
MYSQL_USER: pdns_admin_user
MYSQL_PASSWORD: ${PDNS_ADMIN_DB_PASSWORD}
volumes:
- ./pdns-admin-mysql-data:/var/lib/mysql
networks:
- pdns-network
# PowerDNS Server mit MySQL Backend
pdns:
image: pschiffe/pdns-mysql:${PDNS_VERSION}
container_name: pdns
restart: unless-stopped
ports:
- "${PDNS_PORT}:53/tcp"
- "${PDNS_PORT}:53/udp"
environment:
PDNS_primary: "yes"
PDNS_api: "yes"
PDNS_api_key: ${PDNS_API_KEY}
PDNS_webserver: "yes"
PDNS_webserver_address: 0.0.0.0
PDNS_webserver_port: ${PDNS_WEBSERVER_PORT}
PDNS_webserver_password: ${PDNS_WEBSERVER_PASSWORD}
PDNS_webserver_allow_from: "0.0.0.0/0,::/0"
PDNS_version_string: anonymous
PDNS_default_ttl: ${PDNS_DEFAULT_TTL}
PDNS_gmysql_user: pdns_user
PDNS_gmysql_password: ${PDNS_DB_PASSWORD}
PDNS_gmysql_dbname: ${PDNS_DB_NAME}
PDNS_gmysql_host: mysql
links:
- mysql:mysql
depends_on:
- mysql
networks:
- pdns-network
# PowerDNS Admin Web-Interface
pdns-admin:
image: pschiffe/pdns-admin:latest
container_name: pdns-admin
restart: unless-stopped
ports:
- "${PDNS_ADMIN_PORT}:8080"
environment:
PDNS_ADMIN_SQLA_DB_HOST: mysql-admin
PDNS_ADMIN_SQLA_DB_NAME: ${PDNS_ADMIN_DB_NAME}
PDNS_ADMIN_SQLA_DB_USER: pdns_admin_user
PDNS_ADMIN_SQLA_DB_PASSWORD: ${PDNS_ADMIN_DB_PASSWORD}
PDNS_ADMIN_SALT: ${PDNS_ADMIN_SALT}
PDNS_VERSION: ${PDNS_VERSION}
PDNS_API_KEY: ${PDNS_API_KEY}
volumes:
- ./pdns-admin-upload:/opt/powerdns-admin/upload
links:
- mysql-admin:mysql
- pdns:pdns
depends_on:
- mysql-admin
- pdns
networks:
- pdns-network
networks:
pdns-network:
driver: bridge