In Docker Swarm mode the services listed below can get stuck in their start script, while they are waiting for other services become available. Now, with HEALTHCHECK enabled, docker does not resolve names of services that not pass HEALTHCHECK yet. Meaning that if one of the depenend services is not yet available, it will create a chain of failing services. The services below retry to resolve 100 time, with an average of 3.5 seconds. Hence, the --start-time flag is now set at 350 seconds. - dovecot (imap) - postfix (smtp) - rspamd (antispam)
18 lines
429 B
Docker
18 lines
429 B
Docker
FROM alpine:3.8
|
|
|
|
RUN apk add --no-cache \
|
|
dovecot dovecot-pigeonhole-plugin dovecot-fts-lucene rspamd-client \
|
|
python3 py3-pip \
|
|
&& pip3 install --upgrade pip \
|
|
&& pip3 install jinja2 podop tenacity
|
|
|
|
COPY conf /conf
|
|
COPY start.py /start.py
|
|
|
|
EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
|
|
VOLUME ["/data", "/mail"]
|
|
|
|
CMD /start.py
|
|
|
|
HEALTHCHECK --start-period=350s CMD echo QUIT|nc localhost 110|grep "Dovecot ready."
|