gnu-social/docker/mail/Dockerfile

55 lines
1.3 KiB
Docker

FROM debian:buster-slim
ENV DEBIAN_FRONTEND=noninteractive
# Install packages
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
dovecot-core \
dovecot-imapd \
dovecot-lmtpd \
dovecot-pop3d \
opendkim \
opendkim-tools \
openssl \
postfix \
procps \
rsyslog \
s6 \
&& apt-get autoclean \
&& apt-get autoremove
# Setup folders and users
RUN groupadd -g 2222 vmail \
&& mkdir -p -m 751 "/var/mail/" \
&& mkdir -p -m 755 "/etc/mail/" \
&& mkdir -p "/var/opendkim/keys/" \
&& useradd -d "/var/mail" -M -s "/usr/sbin/nologin" -u 2222 -g 2222 vmail \
&& usermod -aG vmail postfix \
&& usermod -aG vmail dovecot \
&& usermod -aG vmail opendkim \
&& chown vmail:vmail "/var/mail" \
&& chown opendkim:opendkim "/var/opendkim/keys/"
# Copy config files
COPY rootfs/ /
RUN chmod +x "/etc/service/postfix/run" \
&& chmod +x "/etc/service/dovecot/run" \
&& chmod +x "/etc/service/opendkim/run" \
&& chmod +x "/etc/service/rsyslog/run" \
&& chmod +x "/usr/bin/start.sh"
# Prepare user
RUN mkdir -p "/var/mail/${MAIL_DOMAIN}" \
&& mkdir -p "/var/mail/${DOMAINPART}/${USER%@*}" \
&& chown vmail:vmail "/var/mail/${MAIL_DOMAIN}" \
&& chown vmail:vmail "/var/mail/${MAIL_DOMAIN_ROOT}/${MAIL_USER%@*}"
# Expose ports
EXPOSE 25 110 143 587 993 995
# Run start script
ENTRYPOINT /usr/bin/start.sh