2014-10-06 97 views
9

我已經通過docker使用this圖像運行gitlab。在映像文檔中有關於如何爲電子郵件配置可選SMTP服務器的說明,但是有關如果未設置SMTP會發生什麼的信息。 gitlab文檔指出,默認情況下使用sendmail,所以我認爲這是發生了什麼,併爲我的目的(幾個私人存儲庫只有幾個用戶),我不認爲我真的需要比sendmail更多。我試圖忽略SMTP配置,它都運行正常,但電子郵件不發送。我不太瞭解電子郵件服務器或sendmail知道如何發現問題,但我的猜測是它需要的某個端口被阻止。Gitlab,docker和sendmail端口

我的問題:

  1. 誰能比sendmail的確認被使用,而且我也不需要配置什麼?
  2. 是否有一些簡單的方法來在本地測試sendmail以查看端口是否存在阻塞問題?我找到的所有指南都從幾頁配置細節開始。
  3. sendmail需要開放哪些端口才能工作?我是否需要公開容器或防火牆上的其他端口?

回答

0

我昨天遇到同樣的問題,並upvoted你的問題。現在我設法讓smtp在沒有send_mail的情況下工作。

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 
3

碩的回答爲我工作,除了我改變:

supervisord reload # restart the service 

supervisorctl reload 

另一種方法是建立自己的碼頭工人形象和更新production.rb環境文件。以下是Dockerfile的外觀。

FROM sameersbn/gitlab:7.14.0 

MAINTAINER "leo.o'[email protected]" 

# 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 

或者你可以使用我的形象

搬運工拉leopoldodonnell/gitlab

+0

並沒有爲我工作。我得到bash:supervisorctl:command not found。我錯過了什麼嗎? – 2017-08-14 11:18:30