容器化部署Gitlab

  1. 前言:

阅读本文需要先熟练centos和docker相关知识和命令的使用,本文不再赘述。

安装docker,查看我的历史文章。

# 拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latest
  1. 查看镜像情况

[root@k8s-master01 ~]# docker images
REPOSITORY                                                        TAG       IMAGE ID       CREATED         SIZE
gitlab/gitlab-ce                                                  latest    b08de10dc311   2 weeks ago     2.78GB
  1. 启动Gitlab容器

# 启动容器
docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce

接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问。

  1. 修改配置

#进容器内部
docker exec -it gitlab /bin/bash
 
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
 
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.160.100'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.160.100'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
 
# 让配置生效
gitlab-ctl reconfigure

注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.160.100:9980,所以,要修改下面文件

# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
 
  gitlab:
    host: 192.168.160.100
    port: 9980 # 这里改为9980
    https: false
#重启gitlab 
gitlab-ctl restart
  1. 浏览器访问

root@dead43f08669:~# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: D7qENtNgLDWtusrItYWSaFl5w+hDnIqI/q+zGuNTQYM=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

#退出容器 
exit
root@dead43f08669:/opt/gitlab# cd /opt/gitlab/bin/
root@dead43f08669:/opt/gitlab/bin# gitlab-rails console
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [x86_64-linux]
 GitLab:       15.8.1 (383efe57adf) FOSS
 GitLab Shell: 14.15.0
 PostgreSQL:   13.8
------------------------------------------------------------[ booted in 33.99s ]
Loading production environment (Rails 6.1.6.1)
irb(main):001:0> u=User.find(1)
=> #<User id:1 @root>
irb(main):019:0> u.password='Aa&^$#@!' #Password must not contain commonly used combinations of words and letters
=> "Aa&^$\#@!"
irb(main):020:0> u.password_confirmation='Aa&^$#@!' # Password must not contain commonly used combinations of words and letters
=> "Aa&^$\#@!"
irb(main):021:0> u.save
=> true
irb(main):022:0> exit
root@dead43f08669:/opt/gitlab/bin#

SMTP设置--163邮箱设置

授权码

[root@k8s-master01 ~]# docker exec -it gitlab /bin/bash
root@dead43f08669:/# vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true                                                                      
gitlab_rails['smtp_address'] = "smtp.163.com"                                                            
gitlab_rails['smtp_port'] = 465                                                                         
gitlab_rails['smtp_user_name'] = "************@163.com"                                                     
gitlab_rails['smtp_password'] = "*********" ####smtp_password 是授权码,不是登录邮箱密码。                                                             
gitlab_rails['smtp_domain'] = "163.com"                                                                  
gitlab_rails['smtp_authentication'] = "login"                                                           
gitlab_rails['smtp_enable_starttls_auto'] = true                                                        
gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_enabled'] = true                                                            

gitlab_rails['gitlab_email_from'] = '"************@@163.com'                                                 
gitlab_rails['gitlab_email_display_name'] = 'gitlab邮箱'                                                  
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'                                          
gitlab_rails['gitlab_email_subject_suffix'] = ''
gitlab_rails['gitlab_email_smime_enabled'] = false                                                     
gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'                       
gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'                      
gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'
root@dead43f08669:/# gitlab-ctl reconfigure
[2023-02-20T06:20:36+00:00] INFO: Report handlers complete
Infra Phase complete, 6/740 resources updated in 01 minutes 08 seconds
gitlab Reconfigured!
出现以上即可。
irb(main):004:0> Notify.test_email('[email protected]','gitlab邮件标题','gitlab邮件内容').deliver_now
Delivered mail [email protected] (7156.7ms)
=> #<Mail::Message:296940, Multipart: false, Headers: <Date: Mon, 20 Feb 2023 06:29:35 +0000>, <From: Example <[email protected]>>, <Reply-To: Example <[email protected]>>, <To: [email protected]>, <Message-ID: <[email protected]>>, <Subject: gitlab邮件标题>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
irb(main):005:0>

Docker 搭建 Gitlab 服务器 (完整详细版)

猜你喜欢

转载自blog.csdn.net/juanxiaseng0838/article/details/129022506