diff --git a/pdns/Dockerfile b/pdns/Dockerfile index ae9777e..5004152 100644 --- a/pdns/Dockerfile +++ b/pdns/Dockerfile @@ -3,9 +3,9 @@ MAINTAINER Fabio Rauber ENV PDNSCONF_LAUNCH="gmysql" \ PDNSCONF_GMYSQL_HOST="mysql" \ - PDNSCONF_GMYSQL_USER='$MYSQL_ENV_MYSQL_USER' \ - PDNSCONF_GMYSQL_DBNAME='$MYSQL_ENV_MYSQL_DATABASE' \ - PDNSCONF_GMYSQL_PASSWORD='$MYSQL_ENV_MYSQL_PASSWORD' \ + PDNSCONF_GMYSQL_USER='' \ + PDNSCONF_GMYSQL_DBNAME='' \ + PDNSCONF_GMYSQL_PASSWORD='' \ PDNSCONF_INCLUDE_DIR="/etc/powerdns/pdns.d" \ PDNSCONF_GMYSQL_DNSSEC="yes" \ PDNSCONF_EXPERIMENTAL_API_KEY="" diff --git a/pdns/start.sh b/pdns/start.sh index cb73237..2ba7b8a 100644 --- a/pdns/start.sh +++ b/pdns/start.sh @@ -5,6 +5,17 @@ mkdir -p /etc/powerdns/pdns.d PDNSVARS=`echo ${!PDNSCONF_*}` touch /etc/powerdns/pdns.conf +if [ ! -z $MYSQL_ENV_MARIADB_DATABASE ]; then + PDNSCONF_GMYSQL_USER=$MYSQL_ENV_MARIADB_USER + PDNSCONF_GMYSQL_DBNAME=$MYSQL_ENV_MARIADB_DATABASE + PDNSCONF_GMYSQL_PASSWORD=$MYSQL_ENV_MARIADB_PASSWORD +else + PDNSCONF_GMYSQL_USER=$MYSQL_ENV_MYSQL_USER + PDNSCONF_GMYSQL_DBNAME=$MYSQL_ENV_MYSQL_DATABASE + PDNSCONF_GMYSQL_PASSWORD=$MYSQL_ENV_MYSQL_PASSWORD +fi + + for var in $PDNSVARS; do varname=`echo ${var#"PDNSCONF_"} | awk '{print tolower($0)}' | sed 's/_/-/g'` value=`echo ${!var} | sed 's/^$\(.*\)/\1/'` @@ -28,7 +39,7 @@ fi 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 + until mysql -h mysql -u $PDNSCONF_GMYSQL_USER -p$PDNSCONF_GMYSQL_PASSWORD -e "show databases" 2>/dev/null; do echo "WARNING: MySQL still not up. Trying again..." sleep 10 let COUNTER-=1 @@ -38,10 +49,10 @@ mysqlcheck() { 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` + count=`mysql -h mysql -u $PDNSCONF_GMYSQL_USER -p$PDNSCONF_GMYSQL_PASSWORD -e "select count(*) from information_schema.tables where table_type='BASE TABLE' and table_schema='$PDNSCONF_GMYSQL_DBNAME';" | 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." + mysql -h mysql -u $PDNSCONF_GMYSQL_USER -p$PDNSCONF_GMYSQL_PASSWORD $PDNSCONF_GMYSQL_DBNAME < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql && echo "Import done." fi }