Docker 上 gitlab私有化部署及邮箱配置

一、前言

git作为目前最流行的代码管理工具,已经成为了程序员必备的技能。虽然目前有 github(对国人不太友好) 、gitee 两个比较大的代码托管平台。但是出于各种原因,搭建自己的私有代码平台也成了一部分开发人员的选择。针对这种需求,这里为大家介绍的是其中的佼佼者gitlab,也是我们公司内部正在使用的一个代码管理平台。

二、安装

gitlab 官网:https://about.gitlab.com , 官方提供了很多种安装方案,我这里使用Docker 的方式进行安装。

1、首先,需要为gitlab的数据创建一个目录,用来存储gitlab在运行过程中产生的数据。
mkdir -p /data/gitlab

2、将数据库目录设置为环境变量
export GITLAB_HOME=/data/gitlab

3、使用 Docker 引擎安装 GitLab
括号内的域名或 Ip 需要自行修改

sudo docker run --detach \
  --hostname 【域名或IP】 \
  --publish 443:443 --publish 80:80 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:latest

:第一次运行镜像会很慢, 因为需要初始化很多数据,每个人的服务器配置不一样, 运行的时间也不太一样, 我这里使用的是 (腾讯云 4核4G 的配置),运行了大概四五分钟的样子。

我们可以使用命令来监听一下运行情况。查看运行日志:docker logs -f gitlab 、查看是否运行完毕:watch docker ps
当看到下图中的healthy时,说明gitlab已经成功运行了。
Gitlab 运行成功
此时登录地址就可以访问登录页面了。
在这里插入图片描述

1、密码设置

页面虽然可以访问, 但是我们却没办法登录,因为还没有设置用户名密码。官方给出了方案。
第一种: 修改配置文件,如下图,但是密码会在24小时后自动删除!~~~~ 直接忽略~~~~~~
在这里插入图片描述
第二种: 使用GitLab Rails Console修改,下图是官方文档的截图 (非管理员的添加方式)
gitlab 添加用户

# 1、进入容器内部
[root@tr data]# docker exec -it 3b8d18104c14 /bin/bahs

# 2、进入gitlab 的rails 控制台   【这一步比较慢,大概在1~3分钟左右,请耐心等待】
root@49:/# gitlab-rails console

# 3、 创建用户信息
u = User.new(username: 'pangtaiyi', email: 'pangtaiyi@163.com', name: '胖太乙', password: '123456789', password_confirmation: '123456789')

# 4、直接创建, 不发送右键
u.skip_confirmation!

# 5、保存
u.save!

gitlab 添加用户
第三种: 如果要添加管理员,请使用下图的方式

# 1、用户名
user=User.find_by_username 'root'
# 2、 密码
user.password="123456789"

gitlab设置管理员
然后我们输入用户名,密码就可以登录了。
gitlab 登录成功

2、处理报错(页面刷新很卡)

gitlab异常
有些配置比较低的,会发现系统很卡, 登录之后如上图显示直接报502了,这是因为内存爆满了,系统跑不起来。我机器的配置是 腾讯云 4核4G, 跑起来也比较吃力。
系统所耗内存
为了解决这个问题, 我看到网上有人说使用Swap 分区, 于是我尝试了一下,确实有用,设置方式如下。

# 1、查看swap分区情况
cat /proc/swaps

# 2、创建 swap 分区
dd if=/dev/zero of=/swap bs=512 count=8388608

# 3、通过mkswap命令将上面新建出的文件做成swap分区
mkswap /swap

# 4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
cat /proc/sys/vm/swappiness
sysctl -w vm.swappiness=60

5、启用 swap 分区
swapon /swap

6、再次查看swap分区是否启动
cat /proc/swaps

swap分区设置
这样一套下来, 系统运行流畅多了。

3、设置中文显示

由于默认都是显示的英文,对于很多人来说, 太难了~~~ , 不过还好, gitlab 支持多语言,那来看看如何设置成中文显示。
gitlab 设置简体中文
然后刷新页面就生效了。

4、自定义登录页样式

经过前面几步的操作, gitlab 已经部署成功。但是发现登录页面并不是自己喜欢的, 没关系, gitlab 提供了自定义的配置, 可以修改登录页, 也可以修改默认的logo,以便用户自定义需求。
gitlab自定义登录页样式
gitlab自定义登录页样式
退出登录, 可以看到登录页已经变了,
gitlab自定义登录页样式
这里还能设置logo, 就不一一介绍了, 有兴趣的自己可以去看。

三、配置网易163邮箱

gitlab 支持发送邮件,可以对一些更改,新增进行邮件提醒。因为 GitLab Docker 镜像没有安装 SMTP 服务器,所以需要我们进行配置才行。我这里使用的是网易 163的邮箱。 如果有其他邮箱(QQ、Google 、yhoo等等)可以参考官方链接:https://docs.gitlab.com/omnibus/settings/smtp.html

1、开通SMTP 服务

gitlab配置网易163邮箱
gitlab配置网易163邮箱
开启之后会有一个授权密码,请记住授权密码, 后面会用到。
gitlab配置网易163邮箱

2、配置 gitlab.rb 配置文件

进入容器内部,我们找到找到 vi /etc/gitlab/gitlab.rb 文件进行编辑,编辑成下述代码,其中有些参数需要修改, 根据要求修改即可。

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.163.com"
 gitlab_rails['smtp_port'] = 25
 gitlab_rails['smtp_user_name'] = "163邮箱地址"
 gitlab_rails['smtp_password'] = "上面的秘钥"
 gitlab_rails['smtp_domain'] = "163.com"
 gitlab_rails['smtp_authentication'] = :login
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['gitlab_email_from'] = "163邮箱地址"
 user['git_user_email'] = "163邮箱地址"

gitlab配置网易163邮箱
然后重启即可

gitlab-ctl reconfigure  
gitlab-ctl restart

3、测试

新增用户
测试gitlab 发送邮件
可以正常接收邮件。
测试gitlab 发送邮件

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖太乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值