容器化部署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'] = 'noreply@example.com'                                          
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('769879295@qq.com','gitlab邮件标题','gitlab邮件内容').deliver_now
Delivered mail 63f3134fd3e6b_23bf47a4398a@dead43f08669.mail (7156.7ms)
=> #<Mail::Message:296940, Multipart: false, Headers: <Date: Mon, 20 Feb 2023 06:29:35 +0000>, <From: Example <m15056014204@163.com>>, <Reply-To: Example <noreply@example.com>>, <To: 769879295@qq.com>, <Message-ID: <63f3134fd3e6b_23bf47a4398a@dead43f08669.mail>>, <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 服务器 (完整详细版)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署GitLab,您可以按照以下步骤进行操作: 1. 首先,使用以下命令部署GitLab容器: ``` docker run -d \ -p 443:443 -p 80:80 -p 222:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 这个命令将在后台运行一个GitLab容器,并将容器的443、80和222端口映射到主机上。此外,还将配置文件、日志和数据文件夹挂载到主机的相应目录中。 2. 使用以下命令检查GitLab容器是否成功运行: ``` docker ps | grep gitlab ``` 如果您看到输出中有GitLab容器的相关信息,说明容器已经成功运行。 3. 如果您想使用特定版本的GitLab,可以使用以下命令拉取镜像: ``` docker pull beginor/gitlab-ce:11.0.1-ce.0 ``` 这个命令将拉取版本为11.0.1-ce.0的GitLab镜像。 4. 为了方便以后升级,您可以将GitLab的配置、日志和数据文件夹放在容器之外。可以使用以下命令创建相应的文件夹: ``` mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data ``` 这些文件夹将用于存储GitLab的配置、日志和数据。 5. 如果您需要修改GitLab的HTTP和SSH配置,可以编辑`/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml`文件。在该文件中,您可以修改GitLab的主机和端口等相关配置信息。例如,您可以使用以下命令打开该文件进行编辑: ``` vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml ``` 在文件中找到`gitlab:`部分,然后修改`host`、`port`和`https`等选项以满足您的需求。 请根据您的需求和环境进行相应的配置和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值