教程搜索引擎一大把,这里只记录一些细节,基础的安装过程会省略或跳过。
设备是群晖的DS218+,加了根4G内存一共6G。
DSM版本是7,Gitlab是通过系统Docker套件安装的最新版本。(14.3.3)

查看版本方法

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

待机时CPU和内存占用如图:
m_usage.png

端口

port.png
为了不和宿主机起冲突,本地都端口都改了下。
22 SSH端口
25 smtp端口 发邮件用

文件挂载

fils.png

配置文件

Gitlab的话安装需要比较长的时间,大概10~15分钟左右,只能通过看CPU是否一直处于高占用的状态来确认。
安装完成之后可以打开容器的详情 > 终端机 > 新增 > bash 进入容器执行命令。
而Gitlab的配置文件在/etc/gitlab/gitlab.rb
需要修改的配置如下:

external_url 'http://192.168.50.55' 
gitlab_rails['gitlab_ssh_host'] = '192.168.50.55' 
gitlab_rails['gitlab_shell_ssh_port'] = 2200 

gitlab_rails['gitlab_email_from'] = '[email protected]'                                                                                
gitlab_rails['gitlab_email_reply_to'] = '[email protected]' 

gitlab_rails['smtp_enable'] = true                                                                                                            
gitlab_rails['smtp_address'] = "smpt.example.com"                                                                                           
gitlab_rails['smtp_port'] = 465                                                                                                               
gitlab_rails['smtp_user_name'] = "[email protected]"                                                                                  
gitlab_rails['smtp_password'] = "password"                                                                                            
gitlab_rails['smtp_domain'] = "example.com"                                                                                                  
gitlab_rails['smtp_authentication'] = "login"                                                                                                 
gitlab_rails['smtp_enable_starttls_auto'] = true                                                                                              
gitlab_rails['smtp_tls'] = true  

external_url 为Web端的访问地址

gitlab_ssh_hostgitlab_shell_ssh_port 如果不配置的话在仓库中的clone会使用默认值(一个示例用的域名),并不会使用你的external_url,而且端口也不会带上。
ssh_clone.png

其余关于邮件的具体配置参考你自己的邮件服务商。
发邮件时遇到验证错误的话有可能需要开启客户端专用密码,也是到服务商那设置。

改完配置之后让gitlab重新加载配置

gitlab-ctl reconfigure

邮件调试

先进入控制台

gitlab-rails console

因为机器比较慢,最好等输出一些版本信息之后再执行命令。

--------------------------------------------------------------------------------                                                               
 Ruby:         ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]                                                                  
 GitLab:       14.3.3 (2bbed5eb0d5) FOSS                                                                                                       
 GitLab Shell: 13.21.1                                                                                                                         
--------------------------------------------------------------------------------  

发送测试邮件

Notify.test_email('[email protected]', '这是一封测试邮件', '这是测试邮件的内容').deliver_now

一些常见的小问题

1. Docker套件的终端不能粘贴命令只能手打,注意输入错误。
2. 提示“getaddrinfo: Name or service not known”的话是smtp_addresssmtp_domain填错了。
3. 提示“535 systemctl busy”的话是密码错了或者没设置客户端专用密码。
4. 发送成功但是没收到的话尝试登陆网页端看是否被判定为垃圾邮件而退信。
5. 不知道root默认密码的话可以直接在gitlab-rails console里重置

进入控制台

[email protected]:/opt/gitlab/bin# gitlab-rails console
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
 GitLab:       14.0.2 (bac4ee4a9e2) FOSS
 GitLab Shell: 13.19.0
 PostgreSQL:   12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
irb(main):001:0>

查询用户

irb(main):001:0> u=User.where(id:1).first
=> #<User id:1 @root>

修改密码

irb(main):002:0> u.password='12345678'
=> "12345678"

再次确认

irb(main):004:0> u.password_confirmation='12345678'
=> "12345678"

保存

irb(main):005:0> u.save
Enqueued ActionMailer::MailDeliveryJob (Job ID: d4c64606-0597-46ae-a7b5-fa9bb01c2685) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007fe59ae70c98 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true

6.git clone时提示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
err_log.png
打开C:\Users\你的用户名\.ssh\known_hosts
2.png
将与gitlab ip相关的行数删掉并保存,再执行gitlab clone即可

标签: none

添加新评论