本文已参与「新人创作礼」活动,一起开启掘金创作之路。
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
(一) 安装流程
1.1 拉取中文镜像
docker pull beginor/gitlab-ce
1.2 创建目录
mkdir /www/wwwroot/gitlab/config
mkdir /www/wwwroot/gitlab/log
mkdir /www/wwwroot/gitlab/data
1.3 修改目录权限
chmod 777 /www/wwwroot/gitlab/config
chmod 777 /www/wwwroot/gitlab/log
chmod 777 /www/wwwroot/gitlab/data
1.4 创建容器
docker run -itd -p 8443:443 -p 8800:8800 -p 8222:22 --name gitlab --restart always -v /www/wwwroot/gitlab/config:/etc/gitlab -v /www/wwwroot/gitlab/log:/var/log/gitlab -v /www/wwwroot/gitlab/data:/var/opt/gitlab --privileged=true beginor/gitlab-ce
参数说明:
-d允许后台运行-p [宿主机端口:容器端口]端口映射--name [容器命名]--restart always重启配置-v /www/wwwroot/gitlab/config:/etc/gitlab挂载目录,配置文件目录-v /www/wwwroot/gitlab/data:/var/opt/gitlab挂载目录,数据目录(可用于数据恢复)-v /www/wwwroot/gitlab/log:/var/log/gitlab挂载目录,日志文件目录--privileged=true配置容器内拥有root权限
1.5 宿主机开放端口
开放端口:
8443、8800、8222,端口开放可自定义设置,但请避免设置正在使用的端口。 这里Linux虚拟机采用开启防火墙端口的方法,如果是云服务器请开启安全组端口;
# 友情提示:可能以下操作不生效,建议采用第二种
# (1)开启防火墙
systemctl start firewalld.service
# (2)开启端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
# (3)检查端口号是否被开启
firewall-cmd --query-port=端口号/tcp
# (4)重启防火墙[必须重载,否则不生效]
firewall-cmd --reload
# (5)查看所有开放的端口列表
firewall-cmd --list-port
# 其他命令
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service
参数说明:
--zone#作用域--add-port=端口号/tcp#添加端口,格式为:端口/通讯协议--permanent#永久生效,没有此参数重启后失效
1.6 设置自启动
# 自启动是随docker启动而启动
docker update gitlab --restart=always
## 也可以设置关闭
docker update gitlab --restart=no
1.7 配置代码库URl地址
(1) 修改配置文件
vi /www/wwwroot/gitlab/config/gitlab.rb
## 首行添加内容:
# 配置代码库的http协议所使用的下载地址,不加端口号默认为80
external_url 'http://192.168.1.48:8800'
# 配置代码库的ssh协议所使用的下载地址
gitlab_rails['gitlab_ssh_host'] = '192.168.1.48'
# 配置代码库的ssh协议的端口:容器22映射的宿主机端口
gitlab_rails['gitlab_shell_ssh_port'] = 8222
# 配置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
vi /www/wwwroot/gitlab/data/gitlab-rails/etc/gitlab.yml
## 修改gitlab面板访问地址:
#host: 0e0a26eb7268
host: 192.168.1.48
port: 8800 # 宿主机端口
https: false
(2) 重载配置并重启
友情提示: 重启客户端需要些时间处理,请耐心等待,然后刷新页面就好了。
# 进入容器
docker exec -it gitlab bash
# 重载配置
gitlab-ctl reconfigure
# 重启gitlab客户端
gitlab-ctl restart
1.8 GitLab常用命令
gitlab-ctl help 帮助
gitlab-ctl start 启动
gitlab-ctl restart 重启
gitlab-ctl stop 关闭
gitlab-ctl status 查看状态
gitlab-ctl show-config 查看配置
gitlab-ctl reconfigure 重载配置
gitlab-ctl tail [postgresql] 查看日志
(二) GitLab的使用
2.1 进入GitLab后台
2.2 修改root密码
友情提示: 如果修改密码失败,请刷新页面重新修改即可成功。
2.3 账户登录
超级管理员账户:
root,密码为上一步修改的密码
2.4 创建项目
2.5 添加秘钥
2.6 本地代码上传
## 1. 本地创建项目目录
mkdir AdminApi
cd AdminAPi
## 2. git初始化
git init
## 3.创建README.md
touch README.md
## 4. 添加文件到缓存区
git add README.md
## 5. 文件上传到代码库
git commit -m "add README"
## 6. 绑定代码库
git remote add origin ssh://git@192.168.1.48:8222/Admin/AdminApi.git
## 7. 推送代码
git push -u origin master
文件上传代码块成功如示:
2.7 命令行指令
Git 全局设置
git config --global user.name "XXXX"
git config --global user.email "XXXXXXX@qq.com"
创建新版本库
git clone git@9759b8b13571:Admin/AdminApi.git
cd AdminApi
touch README.md
git add README.md
git commit -m "add README"
已存在的文件夹
cd existing_folder
git init
git remote add origin git@9759b8b13571:Admin/AdminApi.git
git add .
git commit -m "Initial commit"
已存在的 Git 版本库
cd existing_repo
git remote rename origin old-origin
git remote add origin git@9759b8b13571:Admin/AdminApi.git
(三) Gitlab性能优化
gitlab在运行的时候占用CPU过高,我们可以通过修改配置文件降低CPU占用率。 8核4G内存优化
## sidekiq并发数设置: 根据使用人数设置;默认是25
sidekiq['concurrency']=10
## unicorn修改进程数及内存占用
# 运行超时设置
unicorn['worker_timeout'] = 60
# 进程修改建议:2或者4或者6 ;若想要性能最好可以设置CPU内核数+1
unicorn['worker_processes'] = 4
unicorn['worker_memory_limit_min'] = "300 * 1 << 20"
unicorn['worker_memory_limit_max'] = "500 * 1 << 20"
## 修改数据库配置:
postgresql['max_worker_processes']=4
定时释放缓存
## 释放page cache
echo 1 > /proc/sys/vm/drop_caches
## 释放 dentries 和 inodes
echo 2 > /proc/sys/vm/drop_caches