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 文件:
  1. gitlab:
  2. image: sameersbn/gitlab:10.4.2-1
  3. ports:
  4. - "10022:22"
  5. - "10080:80"
  6. links:
  7. - gitlab-redis:redisio
  8. - gitlab-postgresql:postgresql
  9. environment:
  10. - GITLAB_PORT=80
  11. - GITLAB_SSH_PORT=22
  12. - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
  13. - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string
  14. - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string
  15. volumes:
  16. - /data/docker/gitlab/gitlab:/home/git/data
  17. restart: always
  18. gitlab-redis:
  19. image: sameersbn/redis
  20. volumes:
  21. - /data/docker/gitlab/redis:/var/lib/redis
  22. restart: always
  23. gitlab-postgresql:
  24. image: sameersbn/postgresql:9.6-2
  25. environment:
  26. - DB_NAME=gitlabhq_production
  27. - DB_USER=gitlab
  28. - DB_PASS=password
  29. - DB_EXTENSION=pg_trgm
  30. volumes:
  31. - /data/docker/gitlab/postgresql:/var/lib/postgresql
  32. 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
  • 这个概念在设置用户组的时候会遇到,叫做:Add user(s) to the group,比如链接:http://192.168.1.111/admin/groups/组名称
行为 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/admin/users/
  • 创建用户是没有填写密码的地方,默认是创建后会发送邮件给用户进行首次使用的密码设置。但是,有时候没必要这样,你可以创建好用户之后,编辑该用户就可以强制设置密码了(即使你设置了,第一次用户使用还是要让你修改密码…真是严苛)

创建群组

  • 地址: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

资料