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