FROM alpine:3.8 as builder

RUN apk --no-cache add \
    rpcgen \
    g++ \
    make \
    libressl \
    libressl-dev \
    lua-dev \
    openldap-dev \
    libsodium-dev \
    linux-pam-dev \
    zlib-dev \
    bzip2-dev \
    xz-dev \
    lz4-dev \
    icu-dev \
    inotify-tools-dev

RUN mkdir /tmp/dovecot
RUN wget -qO- https://www.dovecot.org/releases/2.3/dovecot-2.3.0.tar.gz | tar -xz -C /tmp/dovecot --strip 2

RUN mkdir /tmp/pigeonhole
RUN wget -qO- https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-0.5.0.1.tar.gz | tar -xz -C /tmp/pigeonhole --strip 1

RUN cd /tmp/dovecot && \
    ./configure --prefix '' \
    --with-notify=inotify \
    --with-lua \
    --with-zlib \
    --with-bzlib \
    --with-pam \
    --with-ssl=openssl \
    --with-sodium \
    --without-sql \
    --with-ldap \
    --with-lzma \
    --with-lz4 \
    --with-icu \
    --without-shadow \
    --with-ssldir=/etc/ssl/mail \
    --with-rundir=/run/dovecot \
    --disable-static && \
    make && \
    make install

RUN cd /tmp/pigeonhole && \
    ./configure --prefix '' \
    --with-ldap=yes \
    --with-dovecot=/lib/dovecot \
    --disable-static && \
    make && make install

FROM thallian/confd-env:latest

COPY --from=builder /lib/dovecot/ /lib/dovecot/
COPY --from=builder /libexec/dovecot/ /libexec/dovecot/
COPY --from=builder /bin/doveadm /bin/doveadm
COPY --from=builder /bin/doveconf /bin/doveconf
COPY --from=builder /bin/dsync /bin/dsync
COPY --from=builder /sbin/dovecot /sbin/dovecot
COPY --from=builder /bin/sieve* /bin/

RUN apk --no-cache add \
    libsodium \
    libbz2 \
    zlib \
    lz4 \
    linux-pam \
    libressl \
    ssmtp \
    ca-certificates \
    lua \
    lua-ldap \
    inotify-tools

RUN addgroup -g 150 dovecot
RUN adduser -u 140 -h /dev/null -H -s /sbin/nologin -D -G dovecot dovecot

RUN addgroup -g 151 dovenull
RUN adduser -u 141 -h /dev/null -H -s /sbin/nologin -D -G dovenull dovenull

RUN addgroup -g 2222 access
RUN addgroup dovecot access

RUN addgroup -g 1111 vmail
RUN adduser -u 1111 -h /var/lib/vmail -D -G vmail vmail

RUN mkdir -p /etc/dovecot/conf.d
RUN mkdir /var/lib/vmail/sieve-after/

RUN chown -R vmail:vmail /var/lib/vmail/sieve-after/

EXPOSE 143 4190 6334 7777

VOLUME /var/lib/vmail/mail/ /etc/ssl/mail

ADD /rootfs /