Gitlab实战教程(一) 安装与使用(Docker版)

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 宿主机开放端口

开放端口:844388008222,端口开放可自定义设置,但请避免设置正在使用的端口。
这里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后台

http://192.168.1.48:8800/

2.2 修改root密码

友情提示: 如果修改密码失败,请刷新页面重新修改即可成功。

Gitlab实战教程(一) 安装与使用(Docker版)_第1张图片

2.3 账户登录

超级管理员账户:root,密码为上一步修改的密码

Gitlab实战教程(一) 安装与使用(Docker版)_第2张图片

2.4 创建项目

Gitlab实战教程(一) 安装与使用(Docker版)_第3张图片
Gitlab实战教程(一) 安装与使用(Docker版)_第4张图片

2.5 添加秘钥

如何生成Git秘钥
Gitlab实战教程(一) 安装与使用(Docker版)_第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://[email protected]:8222/Admin/AdminApi.git
## 7. 推送代码
git push -u origin master

文件上传代码块成功如示:
Gitlab实战教程(一) 安装与使用(Docker版)_第6张图片

2.7 命令行指令

Git 全局设置

git config --global user.name "XXXX"
git config --global user.email "[email protected]"

创建新版本库

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内存优化
Gitlab实战教程(一) 安装与使用(Docker版)_第7张图片

## 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

Gitlab实战教程(一) 安装与使用(Docker版)_第8张图片

你可能感兴趣的:(代码管理与部署,git,docker,gitlab)