Pārlūkot izejas kodu

Fix Dockerfile, again

andryyy 8 gadi atpakaļ
vecāks
revīzija
a7b854f7ce
1 mainītis faili ar 26 papildinājumiem un 1 dzēšanām
  1. 26 1
      data/Dockerfiles/php-fpm/docker-entrypoint.sh

+ 26 - 1
data/Dockerfiles/php-fpm/docker-entrypoint.sh

@@ -51,10 +51,35 @@ for file in $(ls /data/dkim/keys/); do
   domain=${file%.dkim}
   if [[ -f /data/dkim/txt/${file} ]]; then
     redis-cli -h redis-mailcow HSET DKIM_PUB_KEYS "${domain}" "$(cat /data/dkim/txt/${file})"
-    redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "${domain}" "$(cat /data/dkim/keys/${file})"
+    redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" "$(cat /data/dkim/keys/${file})"
     redis-cli -h redis-mailcow HSET DKIM_SELECTORS "${domain}" "dkim"
   fi
   rm /data/dkim/{keys,txt}/${file}
 done
 
+# Fix DKIM keys
+
+# Fetch domains
+declare -a DOMAIN_ARRAY
+while read line
+do
+ DOMAIN_ARRAY+=("$line")
+done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain" -Bs)
+while read line
+do
+ DOMAIN_ARRAY+=("$line")
+done < <(mysql -h mysql-mailcow -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT alias_domain FROM alias_domain" -Bs)
+
+# Loop through array and fix keys
+if [[ ! -z ${DOMAIN_ARRAY} ]]; then
+ for domain in "${DOMAIN_ARRAY[@]}"; do
+   WRONG_KEY=$(redis-cli -h redis-mailcow HGET DKIM_PRIV_KEYS ${domain} | tr -d \")
+   if [[ ! -z ${WRONG_KEY} ]]; then
+     echo "Migrating defect key for domain ${domain}"
+     redis-cli -h redis-mailcow HSET DKIM_PRIV_KEYS "dkim.${domain}" ${WRONG_KEY}
+     redis-cli -h redis-mailcow HDEL DKIM_PRIV_KEYS "${domain}"
+   fi
+ done
+fi
+
 exec "$@"