关于如何使用docker 安装并运行 gitlab ce ,请参考我的另一篇文章https://blog.csdn.net/ujm097/article/details/80797857
我们在运行gitlab容器的时候,是把数据data,日志log和配置config挂在到容器外部(这点很重要)
默认的邮件发送方式是sendmail,参考https://blog.csdn.net/weiguang1017/article/details/77533883
这里我们需要改为smtp方式
首先修改配置文件,参考https://docs.gitlab.com/omnibus/settings/smtp.html#qq-exmail
cd /srv/gitlab/config
vi gitlab.rb
在文件的最后加入如下代码,本例中使用的是腾讯企业邮箱
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
其中smtp_user_name和gitlab_email_from需要修改为真实的一个腾讯企业邮箱账号
smtp_password改为该账号的密码,其余完全不变
注意,这些代码前面不要加"#",这个是注释
修改之后保存,目前gitlab容器正在运行
进入bash,
docker exec -it gitlab bash
gitlab为容器名称
进入后执行
gitlab-ctl reconfigure
完成重新配置后
还在bash中执行
gitlab-rails console
如下图,进入console命令
验证配置是否生效,此部分参考http://www.bkjia.com/Javabc/1217016.html
1.显示当前使用的邮件发送协议
ActionMailer::Base.delivery_method
没有问题,是smtp方式
2.查看当前的邮件发送配置
ActionMailer::Base.smtp_settings
配置也已经生效
3.测试console中直接发送邮件
Notify.test_email('[email protected]','测试标题','测试内容').deliver_now
进入企业邮箱账号查看结果
发送成功!
接下来,需要配置gitlab的邮件通知
默认忘记密码发送重置邮件是不用配置的
首先登陆管理员的账号找到settings中的email,选中enable HTML emails
然后个人账户,找到设置settings的email,确认设置了接受消息的默认邮箱。可以使用注册的邮箱,也可以新增一个
同时,针对不同的项目设置不同的通知级别,默认为全局(均可收到通知)
然后我们提交一个issue或者回复,都会触发邮件发送