QNAP Container Station Gitlab 电邮伺服器

QNAP Container Station Gitlab Email Server

我有 QNAP TS453a NAS。在 Container Station 我安装了 sameersbn 的 Docker Gitlab 10.4.2。但是我找不到任何手册如何配置电子邮件服务器,以便 Gitlab 可以在有人忘记密码时发送电子邮件。谁能帮帮我?

我也在 Container Station 中安装了 Sameersbn 版本的 Gitlab,我发现它非常受限制。我个人的建议是只使用 Gitlab 提供的标准 CE 版本。

然而,在我使用 Sameersbn 版本的 Gitlab 时,我无法找到成功配置电子邮件服务器的方法(并不是说没有,我只是想不通)。但是,这并不意味着您不能自己手动完成。

我建议您将卷装载到磁盘上的某处而不是 Container Station 中,这样可以更轻松地手动重新配置任何设置。

这是我的 docker-compose 文件的样子。非常简单,实际上您唯一需要关心的是卷以及安装卷的位置。

web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: <HOTST_NAME>
environment:
    GITLAB_OMNIBUS_CONFIG: |
       external_url <EXTERNAL_URL>
ports:
    - '10080:80' // Insecure port 
    - '10443:443' // Secure port 
    - '10020:22' // SSH port 
volumes:
    - '/share/Gitlab/config:/etc/gitlab' // To configure the Email Server we care about this one.
    - '/share/Gitlab/logs:/var/log/gitlab'
    - '/share/Gitlab/data:/var/opt/gitlab'

我们关心的是'/share/Gitlab/config:/etc/gitlab'。如果您不太了解卷和安装它们,它与此非常相似 '<your_local_location>:<container_location>'。因此,如果我在我的 QNAP NAS 上导航到 /share/Gitlab/config,我将找到我的 GitLab 实例的所有配置。

/share/Gitlab/config 中,您应该会看到一个名为 gitlab.rb 的文件,这是一个 ruby 文件,其中包含您的 GitLab 实例的所有配置。如果您在此文件中搜索,您将找到以下配置:

### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**

# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.server"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "smtp user"
# gitlab_rails['smtp_password'] = "smtp password"
# gitlab_rails['smtp_domain'] = "example.com"
# gitlab_rails['smtp_authentication'] = "login" 
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false

您需要做的就是取消注释(# 表示注释,所以只需删除)并填写您的 SMTP 详细信息。

这将需要您重新配置 Gitlab 实例。所以你需要通过 ssh 进入你的 GitLab 容器,然后只需要 运行 reconfigure 命令。

基本上您需要找到 gitlab.rb 文件,以便您可以修改 SMTP 电子邮件服务器设置。

一些关于通过 Docker 安装 GitLab 的好书 material 是:

(请注意,可能有一些额外的配置允许您的系统写入 /share/Gitlab/config,您可以通过 ssh 使用 chmod 命令执行此操作)