FROM node:latest ENV HOSTNAME=${HOSTNAME:-haraka.localdomain} ENV EMAIL=${EMAIL:-test@email.tld} ENV USE_LETSENCRYPT=${USE_LETSENCRYPT:-false} COPY haraka.sh /haraka.sh COPY certbot-renew.sh /etc/cron.daily/certbot-renew.sh RUN echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ apt-get update && apt-get upgrade -y && apt-get -t jessie-backports install -y --no-install-recommends supervisor certbot cron && \ mkdir /var/log/supervisord && \ mkdir /var/run/supervisord && \ groupadd -r haraka && \ useradd --comment "Haraka Server User" \ --home /haraka \ --shell /bin/false \ --gid haraka \ -r \ -m \ haraka && \ chown -R haraka:haraka /haraka && \ chmod +x /haraka.sh /etc/cron.daily/certbot-renew.sh && \ rm -rf /var/lib/apt/lists/* COPY supervisord.conf /etc/supervisor/supervisord.conf # Port 80 is used for LetsEncrypt EXPOSE 25 80 587 VOLUME /haraka VOLUME /etc/letsencrypt ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"] # Install Haraka and it's plugins USER node ENV NPM_CONFIG_PREFIX=/home/node/.npm-global ENV PATH=$PATH:/home/node/.npm-global/bin RUN npm -g install \ Haraka \ haraka-net-utils \ haraka-plugin-rspamd \ haraka-plugin-rcpt-ldap \ haraka-plugin-auth-ldap