diff --git a/core/dovecot/start.py b/core/dovecot/start.py index 83f91fab..2de114fd 100755 --- a/core/dovecot/start.py +++ b/core/dovecot/start.py @@ -4,14 +4,26 @@ import jinja2 import os import socket import glob +import time convert = lambda src, dst: open(dst, "w").write(jinja2.Template(open(src).read()).render(**os.environ)) # Actual startup script -os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) -os.environ["REDIS_ADDRESS"] = socket.gethostbyname(os.environ.get("REDIS_ADDRESS", "redis")) -if os.environ["WEBMAIL"] != "none": - os.environ["WEBMAIL_ADDRESS"] = socket.gethostbyname(os.environ.get("WEBMAIL_ADDRESS", "webmail")) +i = 0 +t = 10 +while True: + i += 1 + try: + os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) + os.environ["REDIS_ADDRESS"] = socket.gethostbyname(os.environ.get("REDIS_ADDRESS", "redis")) + if os.environ["WEBMAIL"] != "none": + os.environ["WEBMAIL_ADDRESS"] = socket.gethostbyname(os.environ.get("WEBMAIL_ADDRESS", "webmail")) + except socket.gaierror as err: + if i >= t: + raise + time.sleep(10) + continue + break for dovecot_file in glob.glob("/conf/*"): convert(dovecot_file, os.path.join("/etc/dovecot", os.path.basename(dovecot_file))) diff --git a/core/postfix/start.py b/core/postfix/start.py index 4dbf2206..f3c6aaca 100755 --- a/core/postfix/start.py +++ b/core/postfix/start.py @@ -5,11 +5,23 @@ import os import socket import glob import shutil - +import time + convert = lambda src, dst: open(dst, "w").write(jinja2.Template(open(src).read()).render(**os.environ)) # Actual startup script -os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) +i = 0 +t = 10 +while True: + i += 1 + try: + os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) + except socket.gaierror as err: + if i >= t: + raise + time.sleep(10) + continue + break os.environ["HOST_ANTISPAM"] = os.environ.get("HOST_ANTISPAM", "antispam:11332") os.environ["HOST_LMTP"] = os.environ.get("HOST_LMTP", "imap:2525") diff --git a/services/rspamd/start.py b/services/rspamd/start.py index 87309cee..08301a0d 100755 --- a/services/rspamd/start.py +++ b/services/rspamd/start.py @@ -4,11 +4,23 @@ import jinja2 import os import socket import glob +import time convert = lambda src, dst: open(dst, "w").write(jinja2.Template(open(src).read()).render(**os.environ)) # Actual startup script -os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) +i = 0 +t = 10 +while True: + i += 1 + try: + os.environ["FRONT_ADDRESS"] = socket.gethostbyname(os.environ.get("FRONT_ADDRESS", "front")) + except socket.gaierror as err: + if i >= t: + raise + time.sleep(10) + continue + break if "HOST_REDIS" not in os.environ: os.environ["HOST_REDIS"] = "redis" for rspamd_file in glob.glob("/conf/*"):