From 5ba28be4a01c6b4b8c126af71645c80f7f714d8d Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 28 Mar 2022 17:51:21 +0200 Subject: [PATCH 1/2] Fix MySQL check if PDNSCONF_GMYSQL_HOST is not "mysql". Fixes interlegis/docker-powerdns#3. --- pdns/start.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pdns/start.sh b/pdns/start.sh index 57c48ab..88935fb 100644 --- a/pdns/start.sh +++ b/pdns/start.sh @@ -5,6 +5,8 @@ mkdir -p /etc/powerdns/pdns.d PDNSVARS=`echo ${!PDNSCONF_*}` touch /etc/powerdns/pdns.conf +PDNSCONF_GMYSQL_HOST=${PDNSCONF_GMYSQL_HOST:-mysql} + if [ ! -z $MYSQL_ENV_MARIADB_DATABASE ]; then PDNSCONF_GMYSQL_USER=$MYSQL_ENV_MARIADB_USER PDNSCONF_GMYSQL_DBNAME=$MYSQL_ENV_MARIADB_DATABASE @@ -35,7 +37,7 @@ fi mysqlcheck() { # Wait for MySQL to be available... COUNTER=20 - until mysql -h mysql -u $PDNSCONF_GMYSQL_USER -p$PDNSCONF_GMYSQL_PASSWORD -e "show databases" 2>/dev/null; do + until mysql -h "$PDNSCONF_GMYSQL_HOST" -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 @@ -45,10 +47,10 @@ mysqlcheck() { fi done - 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` + count=`mysql -h "$PDNSCONF_GMYSQL_HOST" -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 $PDNSCONF_GMYSQL_USER -p$PDNSCONF_GMYSQL_PASSWORD $PDNSCONF_GMYSQL_DBNAME < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql && echo "Import done." + mysql -h "$PDNSCONF_GMYSQL_HOST" -u "$PDNSCONF_GMYSQL_USER" -p"$PDNSCONF_GMYSQL_PASSWORD" "$PDNSCONF_GMYSQL_DBNAME" < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql && echo "Import done." fi } From 35a570c47d155ea956a5c61facdf0e69068f9809 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 28 Mar 2022 18:10:43 +0200 Subject: [PATCH 2/2] Install powerdns keyring directly to trusted.gpg.d. This replaces the deprecated apt-key method that was previously used. --- pdns/Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pdns/Dockerfile b/pdns/Dockerfile index f049a66..20c16c3 100644 --- a/pdns/Dockerfile +++ b/pdns/Dockerfile @@ -12,16 +12,17 @@ ENV PDNSCONF_LAUNCH="gmysql" \ PDNSCONF_API_KEY="" \ SECALLZONES_CRONJOB="no" -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y curl gnupg && \ - curl https://repo.powerdns.com/FD380FBB-pub.asc | apt-key add - +ADD https://repo.powerdns.com/FD380FBB-pub.asc /etc/apt/trusted.gpg.d/powerdns-key.asc ADD pdns.list /etc/apt/sources.list.d/pdns.list ADD pdns.preference /etc/apt/preferences.d/pdns -RUN apt-get update && \ +RUN \ + chmod 644 /etc/apt/trusted.gpg.d/powerdns-key.asc && \ + apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -q -y pdns-server pdns-backend-mysql mariadb-client && \ rm /etc/powerdns/pdns.d/*.conf && rm /etc/powerdns/*.conf && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cron jq && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cron curl jq && \ rm /etc/cron.daily/* && \ mkdir /var/run/pdns && \ apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*