一、前言
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已经成功运行了。
此时登录地址就可以访问登录页面了。
1、密码设置
页面虽然可以访问, 但是我们却没办法登录,因为还没有设置用户名密码。官方给出了方案。
第一种: 修改配置文件,如下图,但是密码会在24小时后自动删除!~~~~ 直接忽略~~~~~~
第二种: 使用GitLab Rails Console修改,下图是官方文档的截图 (非管理员的添加方式)
# 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!
第三种: 如果要添加管理员,请使用下图的方式
# 1、用户名
user=User.find_by_username 'root'
# 2、 密码
user.password="123456789"
然后我们输入用户名,密码就可以登录了。
2、处理报错(页面刷新很卡)
有些配置比较低的,会发现系统很卡, 登录之后如上图显示直接报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
这样一套下来, 系统运行流畅多了。
3、设置中文显示
由于默认都是显示的英文,对于很多人来说, 太难了~~~ , 不过还好, gitlab 支持多语言,那来看看如何设置成中文显示。
然后刷新页面就生效了。
4、自定义登录页样式
经过前面几步的操作, gitlab 已经部署成功。但是发现登录页面并不是自己喜欢的, 没关系, gitlab 提供了自定义的配置, 可以修改登录页, 也可以修改默认的logo,以便用户自定义需求。
退出登录, 可以看到登录页已经变了,
这里还能设置logo, 就不一一介绍了, 有兴趣的自己可以去看。
三、配置网易163邮箱
gitlab 支持发送邮件,可以对一些更改,新增进行邮件提醒。因为 GitLab Docker 镜像没有安装 SMTP 服务器,所以需要我们进行配置才行。我这里使用的是网易 163的邮箱。 如果有其他邮箱(QQ、Google 、yhoo等等)可以参考官方链接:https://docs.gitlab.com/omnibus/settings/smtp.html
1、开通SMTP 服务
开启之后会有一个授权密码,请记住授权密码, 后面会用到。
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-ctl reconfigure
gitlab-ctl restart
3、测试
新增用户
可以正常接收邮件。