FROM docker.io/buildpack-deps:bookworm as delete_to_trash
# hadolint ignore=DL3008,DL3015
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive  apt-get install -y dovecot-dev && \
    git clone https://github.com/pali/dovecot_deleted_to_trash && \
    make -C dovecot_deleted_to_trash

FROM docker.io/debian:bookworm-slim
# hadolint ignore=DL3008
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        dovecot-ldap \
        dovecot-lmtpd \
        dovecot-imapd \
        dovecot-sieve \
        patch \
        ssl-cert \
        time \
    && \
    install -d -m 777 -o mail -g mail /var/lib/dovecot/sieve.d && \
    rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/*
COPY --from=delete_to_trash /dovecot_deleted_to_trash/lib_deleted_to_trash_plugin.so /usr/lib/dovecot/modules/
COPY --from=delete_to_trash /dovecot_deleted_to_trash/95-deleted_to_trash_plugin.conf /etc/dovecot/conf.d/
COPY --chown=root:root entrypoint /entrypoint
COPY patch.diff /root/
RUN patch --strip 0 --verbose --directory /etc/dovecot --input /root/patch.diff && \
    doveconf
COPY --chown=mail:mail *.sieve /var/lib/dovecot/sieve.d/
# hadolint ignore=DL4006
RUN find /var/lib/dovecot/sieve.d/ -type f -name '*.sieve' -print0 | xargs -0n1 sievec -d
VOLUME /var/mail
VOLUME /run/dovecot
EXPOSE 993 25
ENV TLS_DHPARAMS_FILE /usr/share/dovecot/dh.pem
ENTRYPOINT [ "/entrypoint" ]
CMD [ "dovecot", "-F" ]
HEALTHCHECK --start-period=5m CMD doveadm service status || exit 1