Gitlab,docker和sendmail端口

时间:2014-10-06 06:25:23

标签: email smtp sendmail docker gitlab

我使用this图片让gitlab在docker中运行。在映像文档中,有关于如何为电子邮件配置可选SMTP服务器的说明,但没有关于未设置SMTP时会发生什么的信息。 gitlab文档表明默认情况下使用sendmail,所以我认为发生了这种情况,并且出于我的目的(一些只有几个用户的私有存储库)我不认为我真的需要的不仅仅是sendmail。我试图忽略SMTP配置,它运行正常,但不发送电子邮件。我不太了解电子邮件服务器或sendmail知道如何找到问题,但我的猜测是它需要的某些端口被阻止。

我的问题:

  1. 任何人都可以确认使用sendmail,而且我不需要配置某些内容吗?
  2. 是否有一些简单的方法可以在本地测试sendmail以查看是否存在阻塞端口的问题?我找到的所有指南都从几页配置细节开始。
  3. sendmail需要哪些端口才能运行?我是否需要在容器或防火墙上公开其他端口?

2 个答案:

答案 0 :(得分:3)

除了我改变之外,Shuo的答案对我有用:

supervisord reload # restart the service

supervisorctl reload

另一种方法是构建自己的Docker镜像并更新production.rb环境文件。这就是你的Dockerfile可能是什么样子。

FROM sameersbn/gitlab:7.14.0

MAINTAINER "leo.o'donnell@pearson.com"

# sed the production.rb environment file to use a configured email method converting
#
#  config.action_mailer.delivery_method = :sendmail
# 
# to
#  config.action_mailer.delivery_method = (ENV['SMTP_DELIVERY_METHOD'] || :sendmail).to_sym
RUN sed -E -e "s/(action_mailer.delivery_method[^\:]+)([^ \t\#]+)(.*)/\1\(ENV\[\'SMTP_DELIVERY_METHOD\'\] \|\| \2\).to_sym\3/" -i config/environments/production.rb

或者您可以使用我的图片

  

docker pull leopoldodonnell / gitlab

答案 1 :(得分:0)

我昨天遇到了同样的问题并且提出了你的问题。现在我设法在没有send_mail的情况下进行smtp工作。

sudo docker exec -it gitlab /bin/bash # go into the container
vi /home/git/gitlab/gitlab/config/environments/production.rb # The path may not exactly match, but you can guess 
now search email and the method is :send_mail, change it to :smtp
supervisord reload # restart the service