docker搭建gitlab

前言

1.获取邮箱授权码,让gitlab具有发送邮件功能

以QQ邮箱为例

163邮箱为例

2.拉取镜像

3.创建配置文件gitlab.rb

4.启动容器

5.查看管理员密码

6.测试邮件发送

7.重置管理员密码

8.修改root邮箱

9.让用户可注册


前言

首先,确保服务器有4G以上的内存,gitlab非常吃内存,实测一个gitlab需要4G左右的内存,随着使用可能还会慢慢增加

1.获取邮箱授权码,让gitlab具有发送邮件功能

以QQ邮箱为例

邮箱首页有个设置

 选择账户

  开启POP3/SMTP服务

 验证密保后会生成一串授权码

163邮箱为例

首页中进入设置

开启smtp服务

163会要求你发送短信认证,认证成功后会得到一串授权码

2.拉取镜像

docker pull gitlab/gitlab-ce

3.创建配置文件gitlab.rb

这个配置文件是踩着坑过来的,大伙们不要配错了,请仔细阅读并理解里面的注释

如果不需要发送邮件功能,下面的邮箱配置可以不用配

网上很多博客都有配置gitlab.yml,亲测没啥用,配了重启容器后也会被覆盖

# 外部访问的域名,如果在服务器上,则是公网ip
external_url 'http://192.168.100.3:8090'
# 外部访问的ssh地址,clone里面显示的地址,如果在服务器上,则是公网ip
gitlab_rails['gitlab_ssh_host'] = '192.168.100.3'
# ssh内部端口默认是22,无法改的,这里的填是宿主机的端口,一会儿要通过8091:22映射到容器内部
gitlab_rails['gitlab_shell_ssh_port'] = 8091

# 内存优化配置,不用去改
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
sidekiq['max_concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 2
prometheus_monitoring['enable'] = false

# QQ邮箱配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "243920161"
gitlab_rails['smtp_password'] = "刚刚生成的授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = "243920161@qq.com"

# 163邮箱配置
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.163.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "l243920161@163.com"
# gitlab_rails['smtp_password'] = "刚刚生成的授权码"
# gitlab_rails['smtp_domain'] = "smtp.163.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = false
# gitlab_rails['smtp_tls'] = true
# gitlab_rails['smtp_pool'] = false
# gitlab_rails['gitlab_email_from'] = "l243920161@163.com"

4.启动容器

docker run -d --name gitlab \
-p 0.0.0.0:8090:8090 \
-p 0.0.0.0:8091:22 \
-v /data/gitlab/gitlab.rb:/etc/gitlab/gitlab.rb \
--restart=always \
gitlab/gitlab-ce

出现这个界面不要慌,说明还正在启动,需要等个一两分钟

 出现这个就说明启动成功了

5.查看管理员密码

进入容器

docker exec -it gitlab bash

 查看密码

cat /etc/gitlab/initial_root_password

会看到一串Password就是密码了

 然后就可以使用root账号进行登录,登录后可自行修改密码

6.测试邮件发送

进入容器

docker exec -it gitlab bash

 进入控制台(执行这句会有点久,可能需要1分钟)

gitlab-rails console

发送测试邮件

Notify.test_email('要发送的邮箱@163.com','邮件标题','邮件内容').deliver_now

如果有收到一封测试邮件,说明邮箱配置没问题

7.重置管理员密码

如果忘记root密码,可以通过命令去重置

进入容器

docker exec -it gitlab bash

进入控制台(执行这句会执行比较久,可能需要1分钟)

gitlab-rails console -e production

进行重置(密码最少要8个字符)

user = User.where(id: 1).first
user.password = '12345678'
user.password_confirmation = '12345678'
user.save!

重置完成就可以通过root/12345678登录管理员账号了

8.修改root邮箱

为什么要修改root邮箱,因为gitlab有事件通知的时候,会给超管发邮件,超管就能及时收到最新的动态信息,如果没修改超管邮箱的话,给超管发邮件就会收到以下退信

原因是超级管理员的邮箱是admin@example.com,所以发送失败

 登录root账号,进入admin设置

Users里面中对超级管理员进行编辑

 改成你真实的邮箱

9.让用户可自行注册

这个设置在内网用就好了,公网上千万不要让用户自己注册,不然会有很多机器人恶意注册,而且还删不掉,公网上最好要让管理员审核

 登录gitlab后,进入admin设置

 进入通用设置

 展开注册设置

 修改这两个地方

 修改完别忘了点保存

 回到注册页面,我们去注册一个用户

 到注册的邮箱看下,会收到一封确认信息,点击链接,即可完成注册

 这时候用刚刚注册的号就可以登录了

 登录成功如图所示

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值