Adding the configuration change for multiple provider, Making the service run in foreground and adding test
This commit is contained in:
1 parent
85ab503afb
commit
4eaa4d91ea
10 files changed
+1639
-140
No files matched your search
+41
-50
@@ -1,67 +1,58 @@
|
||||
#Postfix relay
|
||||
FROM docker.io/library/alpine:latest
|
||||
FROM docker.io/library/alpine:3.19
|
||||
|
||||
# Variables for Labels:
|
||||
ARG VENDOR="k2patel"
|
||||
# Variables for Labels
|
||||
ARG VENDOR="your-org"
|
||||
ARG COMPONENT="postfix-relay"
|
||||
ARG BUILD_DATE
|
||||
ARG GIT_REPO
|
||||
ARG GIT_REPO="https://github.com/your-org/docker-postfix"
|
||||
ARG VCS_REF
|
||||
ARG VERSION="1"
|
||||
ARG VERSION="2.0"
|
||||
ARG NAME="dockerized-${COMPONENT}"
|
||||
ARG DESCRIPTION="dockerized environment."
|
||||
ARG DOCUMENTATION="https://git.k2patel.in"
|
||||
ARG AUTHOR="k2patel<k2patel@live.com>"
|
||||
ARG DESCRIPTION="Postfix SMTP relay supporting multiple providers (Maileroo, Mailtrap, SendGrid)"
|
||||
ARG DOCUMENTATION="https://github.com/your-org/docker-postfix"
|
||||
ARG AUTHOR="Your Name <your-email@example.com>"
|
||||
ARG LICENSE="MIT"
|
||||
# END Variables
|
||||
|
||||
#########################################
|
||||
# Labels
|
||||
LABEL org.label-schema.build-date="${BUILD_DATE}" \
|
||||
org.label-schema.name="${NAME}" \
|
||||
org.label-schema.description="${DESCRIPTION}" \
|
||||
org.label-schema.vcs-ref="${VCS_REF}" \
|
||||
org.label-schema.vcs-url="${GIT_REPO}" \
|
||||
org.label-schema.url="${GIT_REPO}" \
|
||||
org.label-schema.vendor="${VENDOR}" \
|
||||
org.label-schema.version="${VERSION}" \
|
||||
org.label-schema.usage="${DOCUMENTATION}"
|
||||
org.label-schema.name="${NAME}" \
|
||||
org.label-schema.description="${DESCRIPTION}" \
|
||||
org.label-schema.vcs-ref="${VCS_REF}" \
|
||||
org.label-schema.vcs-url="${GIT_REPO}" \
|
||||
org.label-schema.vendor="${VENDOR}" \
|
||||
org.label-schema.version="${VERSION}"
|
||||
|
||||
LABEL org.opencontainers.image.created="${BUILD_DATE}" \
|
||||
org.opencontainers.image.url="${GIT_REPO}" \
|
||||
org.opencontainers.image.source="${GIT_REPO}" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.revision="${VCS_REF}" \
|
||||
org.opencontainers.image.vendor="${VENDOR}" \
|
||||
org.opencontainers.image.title="${NAME}" \
|
||||
org.opencontainers.image.description="${DESCRIPTION}" \
|
||||
org.opencontainers.image.documentation="${DOCUMENTATION}" \
|
||||
org.opencontainers.image.authors="${AUTHOR}" \
|
||||
org.opencontainers.image.licenses="${LICENSE}"
|
||||
#########################################
|
||||
# Install required packages
|
||||
RUN apk add --no-cache \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cyrus-sasl \
|
||||
cyrus-sasl-login \
|
||||
libsasl \
|
||||
ca-certificates \
|
||||
bash \
|
||||
tzdata \
|
||||
mailx
|
||||
|
||||
ENV TIMEZONE=${TIMEZONE}
|
||||
ENV SMTP_SERVER=${SMTP_SERVER}
|
||||
ENV SERVER_HOSTNAME=${SERVER_HOSTNAME}
|
||||
ENV SMTP_PORT=${SMTP_PORT}
|
||||
ENV DOMAIN=${DOMAIN}
|
||||
ENV SMTP_USERNAME=${SMTP_USERNAME}
|
||||
ENV SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
# Create necessary directories
|
||||
RUN mkdir -p /var/spool/postfix /etc/postfix/sasl
|
||||
|
||||
# Intall Needed Package
|
||||
RUN apk add --no-cache postfix libsasl supervisor ca-certificates bash rsyslog cyrus-sasl
|
||||
|
||||
#Configure nodaemon mode for supervisord
|
||||
RUN sed -i -e "s/^nodaemon=false/nodaemon=true/" /etc/supervisord.conf
|
||||
#Change postfix to listen on all the interface
|
||||
RUN sed -i -e 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
|
||||
|
||||
COPY etc/ /etc/
|
||||
VOLUME ["/var/log", "/var/mail", "/var/spool/postfix"]
|
||||
COPY run.sh /
|
||||
# Copy entrypoint script
|
||||
COPY run.sh /run.sh
|
||||
RUN chmod +x /run.sh
|
||||
|
||||
# Initialize postfix
|
||||
RUN newaliases
|
||||
|
||||
# Expose SMTP port
|
||||
EXPOSE 25
|
||||
|
||||
ENTRYPOINT /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
||||
# Volumes for persistence
|
||||
VOLUME ["/var/spool/postfix"]
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=40s \
|
||||
CMD postfix status || exit 1
|
||||
|
||||
# Run postfix in foreground
|
||||
ENTRYPOINT ["/run.sh"]
|
||||
Reference in new issue
Block a user