jupiter-mail/Dockerfile

67 lines
1.6 KiB
Docker
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ================================
# Compile Stage
# ================================
FROM debian:bookworm-slim AS compile
RUN <<EOF
apt update
apt install -y clang golang
apt clean
EOF
# TODO: consider removing if not needed
# COPY target/scripts/build/libpam-pgsql.sh .
# RUN bash libpam-pgsql.sh
WORKDIR /src/
COPY src .
# log
RUN clang -O2 -o /usr/local/bin/log /src/log/log.c
# accounts
WORKDIR /src/account-manager
RUN go build -o /usr/local/bin/accounts .
# ================================
# Build Stage
# ================================
FROM debian:bookworm-slim AS build
WORKDIR /
# Install dependencies
COPY target/scripts/build/packages.sh /build/
RUN /bin/bash /build/packages.sh && rm -r /build
# TODO: consider removing if not needed
# COPY --from=compile /pam-pgsql/.libs/pam_pgsql.so /pam-pgsql/.libs/pam_pgsql.la /usr/local/lib/security/
# Install compiled binaries
COPY --from=compile \
/usr/local/bin/log \
/usr/local/bin/accounts \
/usr/local/bin/
# Install helper scripts
COPY target/scripts/*.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/*
COPY target/scripts/helpers /usr/local/bin/helpers
# Supervisor
COPY target/supervisor/supervisord.conf /etc/supervisor/supervisord.conf
COPY target/supervisor/conf.d/* /etc/supervisor/conf.d/
# Dovecot
COPY target/dovecot/*.inc target/dovecot/*.conf target/dovecot/*.ext /etc/dovecot/conf.d/
RUN <<EOF
useradd -u 5000 -d /home/jupiter -s /bin/bash -p "$(echo jupiter | openssl passwd -1 -stdin)" jupiter
EOF
EXPOSE 25/tcp 143/tcp 465/tcp 993/tcp
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]