From 5305d584188aaeab74cff874ad99164d5668ca37 Mon Sep 17 00:00:00 2001 From: Alberto Bertogli Date: Thu, 28 Jan 2021 09:48:48 +0000 Subject: [PATCH] docker: Fix duplicate "hostname" configuration entry When the chasquid docker container is restarted, entrypoint.sh will add the hostname again, even if it is present. This causes chasquid to fail to start due to the duplicated option (`non-repeated field "hostname" is repeated`). Thanks to Jaywann@github for finding and reporting this problem, on https://github.com/albertito/chasquid/issues/16. This patch fixes the issue by only adding the option if it isn't already present. --- docker/add-user.sh | 1 + docker/entrypoint.sh | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/add-user.sh b/docker/add-user.sh index 83ee3a8..ae49e7d 100755 --- a/docker/add-user.sh +++ b/docker/add-user.sh @@ -30,6 +30,7 @@ ENCPASS=$(doveadm pw -u "${EMAIL}" -p "${PASSWORD}") # Edit dovecot users: remove user if it exits. mkdir -p /data/dovecot +touch /data/dovecot/users if grep -q "^${EMAIL}:" /data/dovecot/users; then cp /data/dovecot/users /data/dovecot/users.old cat /data/dovecot/users.old | grep -v "^${EMAIL}:" \ diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index c383119..a14f578 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -95,8 +95,9 @@ done >> /etc/dovecot/auto-ssl.conf # Pick the default domain as default hostname for chasquid. This is only used # in plain text sessions and on very rare cases, and it's mostly for aesthetic # purposes. -echo "hostname: '$ONE_DOMAIN'" >> /etc/chasquid/chasquid.conf - +if ! grep -iq "hostname:" /etc/chasquid/chasquid.conf; then + echo "hostname: '$ONE_DOMAIN'" >> /etc/chasquid/chasquid.conf +fi # Start the services: dovecot in background, chasquid in foreground. start-stop-daemon --start --quiet --pidfile /run/dovecot.pid \