使用 Gitlab docker 映像发送电子邮件
Posted
技术标签:
【中文标题】使用 Gitlab docker 映像发送电子邮件【英文标题】:Send email with Gitlab docker image 【发布时间】:2018-05-09 03:44:09 【问题描述】:这是我的目标,我想为我的 Gitlab 服务器配置电子邮件。我遵循了很多教程,但我无法使其工作。
我的配置如下,我在 Docker 容器中有一个反向代理,我的 Gitlab 服务器也在一个 Docker 容器中。
关于版本:
Docker version 17.09.0-ce, build afdb6d4
docker-compose version 1.16.1, build 6d1ac21
这是我的 docker-compose.yml 文件
version: '3.3'
networks:
proxy:
external: true
internal:
external: false
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
environment:
- TZ=Europe/Paris
- GITLAB_TIMEZONE=Paris
- IMAP_USER=USER@GMAIL.COM
- IMAP_PASSWORD=MYGMAILPASS
- GITLAB_INCOMING_EMAIL_ADDRESS=USERGMAIL+%key@gmail.com
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
restart: always
labels:
- traefik.backend=gitlab
- traefik.frontend.rule=Host:git.domain.com
- traefik.docker.network=proxy
- traefik.port=80
- traefik.frontend.entryPoints=http,https
networks:
- internal
- proxy
我遵循了这个似乎很好的教程:
https://github.com/sameersbn/docker-gitlab#available-configuration-parameters
我必须在我的配置中遗漏一些东西,但我无法弄清楚它是什么......
有人可以帮我配置电子邮件发送吗?我也不知道测试从 GitLab 发送电子邮件的正确方法。
最好的方法是从 docker-compose 环境变量中配置还是直接从 gitlab.rb 文件中配置?
非常感谢您的帮助
【问题讨论】:
【参考方案1】:您遵循的说明适用于与您实际使用的不同的 docker 镜像。您还设置了用于接收电子邮件的 IMAP。在 GitLab 的案例中,它用于通过电子邮件回复问题。
您需要的是 SMTP 设置。 GitLab docker 映像未安装 sendmail,因此您必须按照此处的说明在 GitLab 中设置 SMTP:https://docs.gitlab.com/omnibus/settings/smtp.html#example-configuration
您可以直接在 docker-compose 的 environment
部分下转储 gitlab.rb 配置。我的 Fastmail 设置供参考:
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "***"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "***"
gitlab_rails['smtp_password'] = "***"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
【讨论】:
感谢您的回答。我首先将您的配置直接尝试到我的 gitlab.rb 中。我将 Mailgun 配置为 SMTP,并尝试从“gitlab_rails 控制台”发送电子邮件。它收到了邮件,所以我认为 SMTP 配置正确。有没有办法从 Gitlab 页面测试它?确保一切正常 所以我在 GitLab 上做了一些活动,并收到了电子邮件通知。即使我从 docker-compose 环境变量中设置了 gitlab.rb ,一切正常!感谢您的帮助 ! :) @Hurobaki 您是如何设法通过 gitlab_rails 控制台发送该电子邮件的?你能在某个地方发帖吗,我在任何地方都找不到如何做到这一点。我正在尝试调试电子邮件问题,每次配置更改后尝试通过 GUI 发送电子邮件真的很麻烦。 @MMT 当然,我知道你的感受!我不知道您的配置,但是当您进入 gitlab_rails 控制台时,您必须输入以下命令:Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
你知道是否可以在一个单独的 .env 文件中处理 smtp 并在相同的 yaml 键“GITLAB_OMNIBUS_CONFIG”下将其额外引入到 compose 中?我希望直接在 docker compose 中设置大部分日志记录/ssl,但也希望将其提交给版本控制。但是明文外部 smtp 帐户密码让我感到困惑。类似于 docker-compose.yml 的东西,在环境键中有两个条目。以上是关于使用 Gitlab docker 映像发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
Lombok 作为 Gitlab CI 中 mevan docker 映像的提供者?
为 Gitlab CI Dockerizing Nodejs 依赖项