diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5ec3b4f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,87 @@ +version: "2" + +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 + + 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} + + 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 + + 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} + +networks: + default: + +volumes: + powerdns-mysql-data: diff --git a/docker/PowerDNS-Admin/entrypoint.sh b/docker/PowerDNS-Admin/entrypoint.sh new file mode 100755 index 0000000..f041308 --- /dev/null +++ b/docker/PowerDNS-Admin/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd /powerdns-admin && ./create_db.py +/usr/bin/supervisord -c /etc/supervisord.conf diff --git a/env/development b/env/development new file mode 100644 index 0000000..47a6291 --- /dev/null +++ b/env/development @@ -0,0 +1,15 @@ +ENVIRONMENT=development + +PDA_DB_HOST=powerdns-admin-mysql +PDA_DB_NAME=powerdns_admin +PDA_DB_USER=powerdns_admin +PDA_DB_PASSWORD=changeme + +PDNS_DB_HOST=pdns-mysql +PDNS_DB_NAME=pdns +PDNS_DB_USER=pdns +PDNS_DB_PASSWORD=changeme + +PDNS_HOST=pdns-server +PDNS_API_KEY=changeme +PDNS_WEBSERVER_ALLOW_FROM=0.0.0.0