FROM alpine LABEL Maintainer="Memiks " \ Description="Lightweight container with OpenSMTPD on Alpine Linux." # Allow container to expose ports at runtime, if necessary # https://docs.docker.com/engine/reference/#expose EXPOSE 25 EXPOSE 465 EXPOSE 587 # install necessary packages RUN apk add --no-cache \ autoconf \ automake \ bison \ ca-certificates \ fts-dev \ gcc \ fts \ libasr-dev \ libevent-dev \ libtool \ libtool \ linux-pam-dev \ make \ musl-dev \ openssl \ openssl-dev \ zlib-dev \ git # create users and directories # note: alpine uses busybox and useradd is not available there # also long flags are not available too, so sorry for the RUN mkdir -p /var/lib/opensmtpd/empty \ && adduser _smtpd -h /var/lib/opensmtpd/empty/ -D -H -s /bin/false \ && adduser _smtpq -h /var/lib/opensmtpd/empty/ -D -H -s /bin/false \ && mkdir -p /var/spool/smtpd \ && mkdir -p /var/mail \ && mkdir -p /etc/mail \ && chmod 711 /var/spool/smtpd WORKDIR /tmp RUN git clone -b portable git://github.com/OpenSMTPD/OpenSMTPD.git opensmtpd WORKDIR /tmp/opensmtpd RUN ./bootstrap \ && ./configure \ --prefix=/usr \ --sbindir=/usr/bin \ --libexecdir=/usr/lib/smtpd \ --sysconfdir=/etc/smtpd \ --with-user-smtpd=smtpd \ --with-user-queue=smtpq \ --with-group-queue=smtpq \ --with-gnu-ld \ --with-auth-pam RUN make && make install #RUN etc/aliases /etc/mail/aliases RUN addgroup smtpq RUN adduser -D -S -G smtpq smtpq RUN addgroup smtpd RUN adduser -D -S -G smtpd smtpd USER smtpd WORKDIR /etc/smtpd # Override shell for bash-y debugging goodness SHELL ["/bin/bash", "-exc"]