public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[ACME, Compose] Add new image; fix AAAA check for MAILCOW_HOSTNAME
8adf3d27
data/Dockerfiles/acme/docker-entrypoint.sh | 21 ++++++++++++++++-----
docker-compose.yml | 2 +-
2 files changed, 17 insertions(+), 6 deletions(-)
Diff
diff --git a/data/Dockerfiles/acme/docker-entrypoint.sh b/data/Dockerfiles/acme/docker-entrypoint.sh
index 2d619ee1..78fa4323 100755
--- a/data/Dockerfiles/acme/docker-entrypoint.sh
+++ b/data/Dockerfiles/acme/docker-entrypoint.sh
@@ -28,7 +28,7 @@ log_f "Waiting for Docker API..." no_nl
until ping dockerapi -c1 > /dev/null; do
sleep 1
done
-log_f "Found Docker API" no_date
+log_f "OK" no_date
ACME_BASE=/var/lib/acme
SSL_EXAMPLE=/var/lib/ssl-example
@@ -135,6 +135,8 @@ log_f "Waiting for database... "
while ! mysqladmin ping --host mysql -u${DBUSER} -p${DBPASS} --silent; do
sleep 2
done
+log_f "Initializing, please wait... "
+
while true; do
if [[ "${SKIP_IP_CHECK}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
@@ -214,16 +216,25 @@ while true; do
done
A_MAILCOW_HOSTNAME=$(dig A ${MAILCOW_HOSTNAME} +short | tail -n 1)
- if [[ ! -z ${A_MAILCOW_HOSTNAME} ]]; then
+ AAAA_MAILCOW_HOSTNAME=$(dig AAAA ${MAILCOW_HOSTNAME} +short | tail -n 1)
+ if [[ ! -z ${AAAA_MAILCOW_HOSTNAME} ]]; then
+ log_f "Found AAAA record for ${MAILCOW_HOSTNAME}: ${AAAA_MAILCOW_HOSTNAME} - skipping A record check"
+ if [[ $(expand ${IPV6:-"0000:0000:0000:0000:0000:0000:0000:0000"}) == $(expand ${AAAA_MAILCOW_HOSTNAME}) ]] || [[ ${SKIP_IP_CHECK} == "y" ]]; then
+ log_f "Confirmed AAAA record ${MAILCOW_HOSTNAME}"
+ VALIDATED_MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
+ else
+ log_f "Cannot match your IP ${IPV6:-NO_IPV6_LINK} against hostname ${MAILCOW_HOSTNAME} ($(expand ${AAAA_MAILCOW_HOSTNAME}))"
+ fi
+ elif [[ ! -z ${A_MAILCOW_HOSTNAME} ]]; then
log_f "Found A record for ${MAILCOW_HOSTNAME}: ${A_MAILCOW_HOSTNAME}"
if [[ ${IPV4:-ERR} == ${A_MAILCOW_HOSTNAME} ]] || [[ ${SKIP_IP_CHECK} == "y" ]]; then
- log_f "Confirmed A record ${MAILCOW_HOSTNAME}"
+ log_f "Confirmed A record ${A_MAILCOW_HOSTNAME}"
VALIDATED_MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
else
- log_f "Cannot match your IP ${IPV4} against hostname ${MAILCOW_HOSTNAME} (${A_MAILCOW_HOSTNAME}) "
+ log_f "Cannot match your IP ${IPV4} against hostname ${MAILCOW_HOSTNAME} (${A_MAILCOW_HOSTNAME})"
fi
else
- log_f "No A record for ${MAILCOW_HOSTNAME} found"
+ log_f "No A or AAAA record found for hostname ${MAILCOW_HOSTNAME}"
fi
for SAN in "${ADDITIONAL_SAN_ARR[@]}"; do
diff --git a/docker-compose.yml b/docker-compose.yml
index 5bcc1eea..991a974f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -297,7 +297,7 @@ services:
depends_on:
- nginx-mailcow
- mysql-mailcow
- image: mailcow/acme:1.29
+ image: mailcow/acme:1.30
build: ./data/Dockerfiles/acme
sysctls:
- net.ipv6.conf.all.disable_ipv6=${SYSCTL_IPV6_DISABLED:-0}