Gitlab 安装和配置
Docker Compose 安装方式
- 创建宿主机挂载目录:
mkdir -p /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql
- 赋权(避免挂载的时候,一些程序需要容器中的用户的特定权限使用):
chown -R 777 /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql
- 这里使用 docker-compose 的启动方式,所以需要创建 docker-compose.yml 文件:
gitlab:
image: sameersbn/gitlab:10.4.2-1
ports:
- "10022:22"
- "10080:80"
links:
- gitlab-redis:redisio
- gitlab-postgresql:postgresql
environment:
- GITLAB_PORT=80
- GITLAB_SSH_PORT=22
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string
volumes:
- /data/docker/gitlab/gitlab:/home/git/data
restart: always
gitlab-redis:
image: sameersbn/redis
volumes:
- /data/docker/gitlab/redis:/var/lib/redis
restart: always
gitlab-postgresql:
image: sameersbn/postgresql:9.6-2
environment:
- DB_NAME=gitlabhq_production
- DB_USER=gitlab
- DB_PASS=password
- DB_EXTENSION=pg_trgm
volumes:
- /data/docker/gitlab/postgresql:/var/lib/postgresql
restart: always
Gitlab 高可用方案(High Availability)
原始安装方式
配置
- 配置域名 / IP
- 编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
- 找到 13 行左右:
external_url 'http://gitlab.example.com'
,改为你的域名 / IP - 重启服务:
sudo gitlab-ctl reconfigure
- 前面的初始化配置完成之后,访问当前机子 IP:
http://192.168.1.111:80
- 默认用户是
root
,并且没有密码,所以第一次访问是让你设置你的 root 密码,我设置为:gitlab123456(至少 8 位数) - 设置会初始化密码之后,你就需要登录了。输入设置的密码。
- root 管理员登录之后常用的设置地址(请求地址都是 RESTful 风格很好懂,也应该不会再变了。):
- 普通用户登录之后常去的链接:
权限
用户组的权限
行为 |
Guest |
Reporter |
Developer |
Master |
Owner |
浏览组 |
✓ |
✓ |
✓ |
✓ |
✓ |
编辑组 |
|
|
|
|
✓ |
创建项目 |
|
|
|
✓ |
✓ |
管理组成员 |
|
|
|
|
✓ |
移除组 |
|
|
|
|
✓ |
项目组的权限
- 项目组也有这几种权限的概念:
Guest、Reporter、Developer、Master、Owner
Guest
:访客Reporter
:报告者; 可以理解为测试员、产品经理等,一般负责提交issue等Developer
:开发者; 负责开发Master
:主人; 一般是组长,负责对Master分支进行维护Owner
:拥有者; 一般是项目经理
- 这个概念在项目设置的时候会遇到,叫做:
Members
,比如我有一个组下的项目链接:http://192.168.1.111/组名称/项目名称/settings/members
行为 |
Guest |
Reporter |
Developer |
Master |
Owner |
创建issue |
✓ |
✓ |
✓ |
✓ |
✓ |
留言评论 |
✓ |
✓ |
✓ |
✓ |
✓ |
更新代码 |
|
✓ |
✓ |
✓ |
✓ |
下载工程 |
|
✓ |
✓ |
✓ |
✓ |
创建代码片段 |
|
✓ |
✓ |
✓ |
✓ |
创建合并请求 |
|
|
✓ |
✓ |
✓ |
创建新分支 |
|
|
✓ |
✓ |
✓ |
提交代码到非保护分支 |
|
|
✓ |
✓ |
✓ |
强制提交到非保护分支 |
|
|
✓ |
✓ |
✓ |
移除非保护分支 |
|
|
✓ |
✓ |
✓ |
添加tag |
|
|
✓ |
✓ |
✓ |
创建wiki |
|
|
✓ |
✓ |
✓ |
管理issue处理者 |
|
|
✓ |
✓ |
✓ |
管理labels |
|
|
✓ |
✓ |
✓ |
创建里程碑 |
|
|
|
✓ |
✓ |
添加项目成员 |
|
|
|
✓ |
✓ |
提交保护分支 |
|
|
|
✓ |
✓ |
使能分支保护 |
|
|
|
✓ |
✓ |
修改/移除tag |
|
|
|
✓ |
✓ |
编辑工程 |
|
|
|
✓ |
✓ |
添加deploy keys |
|
|
|
✓ |
✓ |
配置hooks |
|
|
|
✓ |
✓ |
切换visibility level |
|
|
|
|
✓ |
切换工程namespace |
|
|
|
|
✓ |
移除工程 |
|
|
|
|
✓ |
强制提交保护分支 |
|
|
|
|
✓ |
移除保护分支 |
|
|
|
|
✓ |
批量从一个项目中的成员转移到另外一个项目
限定哪些分支可以提交、可以 merge
Gitlab 的其他功能使用
创建用户
创建群组
- 地址:http://119.23.252.150:10080/groups
- 群组主要有三种 Visibility Level:
- Private(私有,内部成员才能看到),The group and its projects can only be viewed by members.
- Internal(内部,只要能登录 Gitlab 就可以看到),The group and any internal projects can be viewed by any logged in user.
- Public(所有人都可以看到),The group and any public projects can be viewed without any authentication.
创建项目
增加 SSH keys
使用 Gitlab 的一个开发流程 - Git flow
- Git flow:我是翻译成:Git 开发流程建议(不是规范,适合大点的团队),也有一个插件叫做这个,本质是用插件来帮你引导做规范的流程管理。
- 这几篇文章很好,不多说了:
资料