使用Gitlab docker image

时间:2017-11-25 10:28:27

标签: email docker docker-compose gitlab

这是我的目标,我想为我的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 个答案:

答案 0 :(得分:3)

您所遵循的说明适用于与您实际使用的图像不同的泊坞窗图像。您还设置了IMAP,用于接收电子邮件。在GitLab的案例中,它是通过电子邮件回复问题。

您想要的是SMTP设置。 GitLab docker镜像没有安装sendmail,因此您必须按照此处的说明在GitLab中设置SMTP:https://docs.gitlab.com/omnibus/settings/smtp.html#example-configuration

您可以在environment部分下的docker-compose中转储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'