Fábio Kaiser Rauber
9 years ago
4 changed files with 92 additions and 0 deletions
@ -0,0 +1,17 @@ |
|||
pdns: |
|||
build: pdns |
|||
links: |
|||
- "mysql:mysql" |
|||
ports: |
|||
- "53:53" |
|||
- "53:53/udp" |
|||
#environment: |
|||
# - PDNS_RECURSIVE_CACHE_TTL=10 |
|||
mysql: |
|||
image: mysql |
|||
environment: |
|||
- MYSQL_ROOT_PASSWORD=mysqlrootpw |
|||
- MYSQL_DATABASE=pdns |
|||
- MYSQL_USER=pdns |
|||
- MYSQL_PASSWORD=pdnspw |
|||
|
@ -0,0 +1,15 @@ |
|||
FROM debian:jessie |
|||
MAINTAINER Fabio Rauber <fabiorauber@gmail.com> |
|||
|
|||
ENV DEBIAN_FRONTEND="noninteractive" |
|||
|
|||
RUN apt-get update && \ |
|||
apt-get install -q -y pdns-server pdns-backend-mysql mysql-client && \ |
|||
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* |
|||
|
|||
EXPOSE 53/udp 53/tcp |
|||
|
|||
ADD start.sh /usr/local/bin/start.sh |
|||
RUN chmod a+x /usr/local/bin/start.sh |
|||
|
|||
CMD ["/usr/local/bin/start.sh"] |
@ -0,0 +1,12 @@ |
|||
launch=gmysql |
|||
gmysql-dnssec=yes |
|||
gmysql-host=db |
|||
gmysql-user=dnsaas |
|||
gmysql-dbname=dnsaas |
|||
gmysql-password=dnsaas |
|||
query-cache-ttl=0 |
|||
cache-ttl=0 |
|||
slave=yes |
|||
experimental-json-interface=yes |
|||
experimental-api-key=your-powerdns-api-key |
|||
webserver=yes |
@ -0,0 +1,48 @@ |
|||
#!/bin/bash |
|||
|
|||
mkdir -p /etc/powerdns |
|||
|
|||
cat >/etc/powerdns/pdns.conf <<EOF |
|||
# MySQL Configuration |
|||
# |
|||
# Launch gmysql backend |
|||
launch=gmysql |
|||
# gpgsql parameters |
|||
gmysql-host=mysql |
|||
gmysql-user=$MYSQL_ENV_MYSQL_USER |
|||
gmysql-dbname=$MYSQL_ENV_MYSQL_DATABASE |
|||
gmysql-password=$MYSQL_ENV_MYSQL_PASSWORD |
|||
gmysql-dnssec=yes |
|||
EOF |
|||
|
|||
mysqlcheck() { |
|||
# Wait for MySQL to be available... |
|||
COUNTER=20 |
|||
until mysql -h mysql -u $MYSQL_ENV_MYSQL_USER -p$MYSQL_ENV_MYSQL_PASSWORD -e "show databases" 2>/dev/null; do |
|||
echo "WARNING: MySQL still not up. Trying again..." |
|||
sleep 10 |
|||
let COUNTER-=1 |
|||
if [ $COUNTER -lt 1 ]; then |
|||
echo "ERROR: MySQL connection timed out. Aborting." |
|||
exit 1 |
|||
fi |
|||
done |
|||
|
|||
count=`mysql -h mysql -u $MYSQL_ENV_MYSQL_USER -p$MYSQL_ENV_MYSQL_PASSWORD -e "select count(*) from information_schema.tables where table_type='BASE TABLE' and table_schema='$MYSQL_ENV_MYSQL_DATABASE';" | tail -1` |
|||
if [ "$count" == "0" ]; then |
|||
echo "Database is empty. Importing PowerDNS schema..." |
|||
mysql -h mysql -u $MYSQL_ENV_MYSQL_USER -p$MYSQL_ENV_MYSQL_PASSWORD $MYSQL_ENV_MYSQL_DATABASE < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql && echo "Import done." |
|||
fi |
|||
} |
|||
|
|||
mysqlcheck |
|||
|
|||
# Start PowerDNS |
|||
# same as /etc/init.d/pdns monitor |
|||
echo "Starting PowerDNS..." |
|||
|
|||
if [ "$#" -gt 0 ]; then |
|||
exec /usr/sbin/pdns_server "$@" |
|||
else |
|||
exec /usr/sbin/pdns_server --daemon=no --guardian=no --control-console --loglevel=9 |
|||
fi |
Loading…
Reference in new issue