GitLab CE Docker SMTP

我正在使用gitlab/gitlab-ce:latest docker镜像来在公司的intranet中设置gitlab。

docker-compose up -d工作就像一个魅力,我可以作为根login,所以我改变了密码,并使自己成为一个适当的用户…但从来没有得到确认电子邮件。

我一直在调整docker-compose.yml文件来尝试修复smtp设置(我认为这是问题),这就是我所得到的:

 web: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always hostname: gitlab environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://127.0.0.1:11141' gitlab_rails['gitlab_shell_ssh_port'] = 11122 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'mail' gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = 'noreply-gitlab' gitlab_rails['smtp_password'] = 'thepass' gitlab_rails['smtp_domain'] = 'ourhost.com' gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['gitlab_email_from'] = 'noreply-gitlab@business.com' gitlab_rails['gitlab_email_reply_to'] = 'gitlab@business.com' ports: - '11141:11141' - '11122:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' 

如果没有别的,我真的想知道我怎么能到日志。 我知道电子邮件是作为一个sidekiq工作处理的,但是我可以在日志卷中看到的sidekiq current日志没有关于发送电子邮件的任何信息:\


production.log我看到这个:

 Started POST "/users/confirmation" for 172.17.0.1 at 2017-05-18 20:26:32 +0000 Processing by ConfirmationsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"lotsoflettershere==", "user"=>{"email"=>"sean.newell@business.com"}} Redirected to http://git.coolsrvrname.dev/users/almost_there Completed 302 Found in 40ms (ActiveRecord: 3.9ms) 

我相信这只是再次发送确认电子邮件的请求。 这是否意味着gitlab没有错误,并且是smtp服务器的问题?


发现这个评论 – 我没有sslconfiguration,所以我会尝试。 (也试图gitlab_rails ['smtp_authentication'] = false)….没有工作:\

正确的yml文件如下所示:

 web: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always hostname: gitlab environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.coolsrvname.dev' gitlab_rails['gitlab_shell_ssh_port'] = 10022 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'mail.myhost.com' gitlab_rails['smtp_port'] = '25' gitlab_rails['smtp_domain'] = 'mail.myhost.com' gitlab_rails['smtp_authentication'] = false gitlab_rails['gitlab_email_from'] = 'noreply-gitlab@business.com' gitlab_rails['gitlab_email_reply_to'] = 'gitlab@business.com' ports: - '10081:80' - '10082:443' - '10022:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' 

这是因为我们的smtp服务器的gitlab主机的IP作为一个可信的IP。 所以我们将smtp auth设置为false。 smtp地址和域匹配似乎使它的工作。 外部url需要是最终用户看到的或资产将不能正确pipe理。 此外,端口的开放需要将外部端口映射到80 | 443 | 22,以便一切正常工作。

gitlab接收电子邮件可能需要进行一些调整,但这不是问题的意图。 虽然我仍然不知道日志存储为传出smtp作业/请求…