我有一个SMTP服务器正在主机上监听本地端口25。在Podman容器中运行着一个应用,该应用需要自动向注册用户发送电子邮件。目前,尝试发送邮件时会出现“Connection refused”错误。如何配置容器以使其能够与主机的邮件服务器协同工作?
此应用在被容器化之前能够成功发送邮件,因此猜测可能是某些网络配置未正确设置。
以下是Dockerfile的一个匿名版本:
FROM maven:3.8.1-amazoncorretto-8 AS maven
LABEL APPLICATION="Application"
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean
RUN mvn package -DskipTests
FROM tomcat:8.5.75-jdk8-corretto
#ENV CATALINA_OPTS="-Xms1024m -Xmx4096m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Xss512k"
# 将上一步构建生成的War文件复制过来
WORKDIR /usr/local/tomcat/webapps/
COPY --from=maven /app/target/application.war /usr/local/tomcat/webapps/application.war
# 允许Tomcat从环境变量读取配置
RUN echo 'org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource' >> /usr/local/tomcat/conf/catalina.properties
# 复制用于HTTPS配置的自定义server.xml和web.xml
COPY server.xml /usr/local/tomcat/conf/server.xml
COPY web.xml /usr/local/tomcat/conf/web.xml
EXPOSE 8080
# 如果要对容器进行远程调试,请暴露8001端口
# EXPOSE 8001
EXPOSE 8443
# SMTP
EXPOSE 25
CMD ["catalina.sh", "run"]