Browse Source

Allow usage of MariaDB database image in addition to MySQL

3.4.7
Fábio Kaiser Rauber 9 years ago
parent
commit
8d0e400777
  1. 6
      pdns/Dockerfile
  2. 17
      pdns/start.sh

6
pdns/Dockerfile

@ -3,9 +3,9 @@ MAINTAINER Fabio Rauber <fabiorauber@gmail.com>
ENV PDNSCONF_LAUNCH="gmysql" \ ENV PDNSCONF_LAUNCH="gmysql" \
PDNSCONF_GMYSQL_HOST="mysql" \ PDNSCONF_GMYSQL_HOST="mysql" \
PDNSCONF_GMYSQL_USER='$MYSQL_ENV_MYSQL_USER' \ PDNSCONF_GMYSQL_USER='' \
PDNSCONF_GMYSQL_DBNAME='$MYSQL_ENV_MYSQL_DATABASE' \ PDNSCONF_GMYSQL_DBNAME='' \
PDNSCONF_GMYSQL_PASSWORD='$MYSQL_ENV_MYSQL_PASSWORD' \ PDNSCONF_GMYSQL_PASSWORD='' \
PDNSCONF_INCLUDE_DIR="/etc/powerdns/pdns.d" \ PDNSCONF_INCLUDE_DIR="/etc/powerdns/pdns.d" \
PDNSCONF_GMYSQL_DNSSEC="yes" \ PDNSCONF_GMYSQL_DNSSEC="yes" \
PDNSCONF_EXPERIMENTAL_API_KEY="" PDNSCONF_EXPERIMENTAL_API_KEY=""

17
pdns/start.sh

@ -5,6 +5,17 @@ mkdir -p /etc/powerdns/pdns.d
PDNSVARS=`echo ${!PDNSCONF_*}` PDNSVARS=`echo ${!PDNSCONF_*}`
touch /etc/powerdns/pdns.conf 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 for var in $PDNSVARS; do
varname=`echo ${var#"PDNSCONF_"} | awk '{print tolower($0)}' | sed 's/_/-/g'` varname=`echo ${var#"PDNSCONF_"} | awk '{print tolower($0)}' | sed 's/_/-/g'`
value=`echo ${!var} | sed 's/^$\(.*\)/\1/'` value=`echo ${!var} | sed 's/^$\(.*\)/\1/'`
@ -28,7 +39,7 @@ fi
mysqlcheck() { mysqlcheck() {
# Wait for MySQL to be available... # Wait for MySQL to be available...
COUNTER=20 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..." echo "WARNING: MySQL still not up. Trying again..."
sleep 10 sleep 10
let COUNTER-=1 let COUNTER-=1
@ -38,10 +49,10 @@ mysqlcheck() {
fi fi
done 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 if [ "$count" == "0" ]; then
echo "Database is empty. Importing PowerDNS schema..." 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 fi
} }

Loading…
Cancel
Save