version: "2.1" services: powerdns-admin: build: context: . dockerfile: docker/PowerDNS-Admin/Dockerfile args: - ENVIRONMENT=${ENVIRONMENT} image: powerdns-admin container_name: powerdns-admin mem_limit: 256M memswap_limit: 256M ports: - "9191:9191" volumes: - .:/powerdns-admin/ - "./configs/${ENVIRONMENT}.py:/powerdns-admin/config.py" logging: driver: json-file options: max-size: 50m networks: - default environment: - ENVIRONMENT=${ENVIRONMENT} - PDA_DB_HOST=${PDA_DB_HOST} - PDA_DB_NAME=${PDA_DB_NAME} - PDA_DB_USER=${PDA_DB_USER} - PDA_DB_PASSWORD=${PDA_DB_PASSWORD} - PDNS_HOST=${PDNS_HOST} - PDNS_API_KEY=${PDNS_API_KEY} depends_on: powerdns-admin-mysql: condition: service_healthy powerdns-admin-mysql: image: mysql/mysql-server:5.7 hostname: ${PDA_DB_HOST} container_name: powerdns-admin-mysql mem_limit: 256M memswap_limit: 256M ports: - "3306:3306" networks: - default environment: - MYSQL_DATABASE=${PDA_DB_NAME} - MYSQL_USER=${PDA_DB_USER} - MYSQL_PASSWORD=${PDA_DB_PASSWORD} healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 10s retries: 5 pdns-server: image: psitrax/powerdns hostname: ${PDNS_HOST} ports: - "53:53" networks: - default command: --api=yes --api-key=${PDNS_API_KEY} --webserver-address=0.0.0.0 --webserver-allow-from=0.0.0.0/0 environment: - MYSQL_HOST=${PDNS_DB_HOST} - MYSQL_USER=${PDNS_DB_USER} - MYSQL_PASS=${PDNS_DB_PASSWORD} - PDNS_API_KEY=${PDNS_API_KEY} - PDNS_WEBSERVER_ALLOW_FROM=${PDNS_WEBSERVER_ALLOW_FROM} depends_on: pdns-mysql: condition: service_healthy pdns-mysql: image: mysql/mysql-server:5.7 hostname: ${PDNS_DB_HOST} container_name: ${PDNS_DB_HOST} mem_limit: 256M memswap_limit: 256M ports: - "3307:3306" networks: - default environment: - MYSQL_DATABASE=${PDNS_DB_NAME} - MYSQL_USER=${PDNS_DB_USER} - MYSQL_PASSWORD=${PDNS_DB_PASSWORD} healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 10s retries: 5 networks: default: volumes: powerdns-mysql-data: