你可以使用以下的 Dockerfile 來建立你需要的容器,並確保它可以啟動成服務:
# 使用 litespeedtech/openlitespeed:1.7.18-lsphp81 作為基礎映像
FROM litespeedtech/openlitespeed:1.7.18-lsphp81
# 設定非交互模式以避免交互式提示
ENV DEBIAN_FRONTEND=noninteractive
# 安装 msmtp 和 ca-certificates
RUN apt-get update && apt-get install -y --no-install-recommends msmtp ca-certificates
# 在容器內設定 msmtp 配置文件 /etc/msmtprc
RUN echo "defaults" > /etc/msmtprc \
&& echo "tls on" >> /etc/msmtprc \
&& echo "tls_starttls on" >> /etc/msmtprc \
&& echo "tls_trust_file /etc/ssl/certs/ca-certificates.crt" >> /etc/msmtprc \
&& echo "" >> /etc/msmtprc \
&& echo "account default" >> /etc/msmtprc \
&& echo "host smtp.gmail.com" >> /etc/msmtprc \
&& echo "port 587" >> /etc/msmtprc \
&& echo "auth on" >> /etc/msmtprc \
&& echo "user MY_GMAIL_ID@gmail.com" >> /etc/msmtprc \
&& echo "password MY_GMAIL_PASSSWORD" >> /etc/msmtprc \
&& echo "from MY_GMAIL_ID@gmail.com" >> /etc/msmtprc \
&& echo "logfile /var/log/msmtp.log" >> /etc/msmtprc
# 創建 msmtp.log 檔案
RUN touch /var/log/msmtp.log
# 設定檔案權限
RUN chmod 0644 /etc/msmtprc
RUN chmod 0777 /var/log/msmtp.log
# 啟動 OpenLiteSpeed
CMD ["/usr/local/lsws/bin/litespeed", "-D"]
請確保將 MY_GMAIL_ID@gmail.com
和 MY_GMAIL_PASSSWORD
替換為你的 Gmail 帳戶信息。建立這個 Docker 映像,然後運行容器時,它應該能夠作為服務運行並使用 msmtp 發送郵件。