#
# simple postfix smtp relay
#

FROM alpine:3.13

# standardized labels
LABEL author="Asif Bacchus <asif@bacchus.cloud>"
LABEL maintainer="Asif Bacchus <asif@bacchus.cloud>"
LABEL org.label-schema.schema-version="1.0"
LABEL org.label-schema.docker.cmd=""
LABEL org.label-schema.description="Simple postfix smtp mail relay on Alpine."
LABEL org.label-schema.url="https://git.asifbacchus.app/ab-docker/postfix-smtp-relay"
LABEL org.label-schema.usage="https://git.asifbacchus.app/ab-docker/postfix-smtp-relay"
LABEL org.label-schema.vcs-url="https://git.asifbacchus.app/ab-docker/postfix-smtp-relay.git"

# install packages and clean-up
RUN apk --no-cache add \
    ca-certificates \
    postfix \
    bind-tools \
    && rm -f /var/cache/apk/*

EXPOSE 25

HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 CMD [ "/usr/sbin/postfix", "status" ]

# set environment variables
ENV TZ=Etc/UTC
ENV LOCAL_HOSTNAME=""
ENV LOCAL_DOMAINNAME=""
ENV LOCAL_ENCRYPTION=false
ENV SMARTHOST=""
ENV SMARTHOST_PORT=587
ENV SMARTHOST_USERNAME=""
ENV SMARTHOST_PASSWORD=""
ENV SMARTHOST_ENCRYPTION="OPTIONAL"

# copy configuration snippets
COPY main.cf.insert /tmp/main.cf.insert
COPY entrypoint.sh /usr/local/bin/entrypoint.sh

# set entrypoint and default command
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]
CMD [ "/usr/sbin/postfix", "start-fg" ]

# set parameters, vendor, version and build-date labels
LABEL org.label-schema.docker.params="TZ=Etc/UTC, HOSTNAME=(container hostname), DOMAINNAME=(derived from hostname), LOCAL_ENCRYPTION=false|optional|true, SMARTHOST=..., SMARTHOST_PORT=587, SMARTHOST_USERNAME=..., SMARTHOST_PASSWORD=..., SMARTHOST_ENCRYPTION=optional|false|true"
LABEL org.label-schema.vendor="Alpine 3.13, Postfix 3.5.10-r0"
LABEL org.label-schema.version="0.9"
ARG BUILD_DATE
LABEL org.label-schema.build-date=${BUILD_DATE}