个人博客,记录知识防止遗忘
docker 部署 gitlab 并简单使用
docker 部署 gitlab 并简单使用

docker 部署 gitlab 并简单使用

内容大纲

1 版本选择:

gitlab社区版是纯英文的,所以有时候不太方便
若需要汉化,有2种方法,但是目前看来,2种方法的汉化进度都还是很慢的:

① 直接 docker search gitlab-ce-zh 使用大佬汉化好的镜像包,但是一般版本都较低

② 去官网看看最新的汉化包是哪个大版本的,先部署对应版本的镜像,随后自己下载对应版本汉化包打补丁
如以下例子:
https://gitlab.com/xhang/gitlab
image.png
如上图,目前最新的汉化包是12.3 ,所以如果要汉化,我可以安装12.3的大版本,例如12.3.5

docker pull gitlab/gitlab-ce:12.3.5-ce.0

image.png

如果对汉化没有要求,那就随意了,但尽量不选最新的,我这里为了演示就随意了,直接latest搞起!

2 docker安装部署

2.1 安装

安装前确保docker run命令中用到的端口未被占用

mkdir -pv /data/gitlab

docker run --detach \
  --hostname 10.8.8.6 \
  -p 50443:443 \
  -p 50080:80 \
  -p 50022:22 \
  --name gitlab \
  --restart always \
  -v /data/gitlab/config:/etc/gitlab \
  -v /data/gitlab/logs:/var/log/gitlab \
  -v /data/gitlab/data:/var/opt/gitlab \
  -v /etc/localtime:/etc/localtime \
  gitlab/gitlab-ce:latest

容器启动后,需要再等待一会,可以使用docker logs -f gitlab 查看实时进度

安装成功后用容器宿主机ip及映射的端口50080 在浏览器访问即可,如
http://10.1.1.1:50080/
image.png

初始用户是root,登陆后显示是administrator@root
初始密码在对应的config目录下initial_root_password中
image.png
登录后需要修改root密码
image.png

2.2 配置邮件服务

首先修改配置文件,由于之前已经映射到宿主机的 /data/gitlab 目录了,所以我直接修改宿主机文件

vim /data/gitlab/config/gitlab.rb

打开之后,/smtp 查找下,会跳转到大概的位置,简单修改即可,以下列举了几个基本的参数,更多的例如ssl证书之类的,以后用到再更新

配置参数 作用
smtp_user_name 指明邮箱账号
smtp_password 指明密码或授权码(几乎所有的邮箱要在第三方客户端登录的话,都需要生成授权码)
gitlab_email_from 指明管理员邮箱账号,与上边的一致即可
gitlab_email_display_name 发邮件的签名,看喜好填写

具体配置我复制了一份:

### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**

  gitlab_rails['smtp_enable'] = true
  gitlab_rails['smtp_address'] = "smtp.qq.com"
  gitlab_rails['smtp_port'] = 465
  gitlab_rails['smtp_user_name'] = "xxxxxxxxx@qq.com"
  gitlab_rails['smtp_password'] = "密码或授权码"
  gitlab_rails['smtp_domain'] = "qq.com"
  gitlab_rails['smtp_authentication'] = "login"
  gitlab_rails['smtp_enable_starttls_auto'] = true
  gitlab_rails['smtp_tls'] = true
# gitlab_rails['smtp_pool'] = false

###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
# gitlab_rails['smtp_openssl_verify_mode'] = 'none'

# gitlab_rails['smtp_ca_path'] = "/etc/ssl/certs"
# gitlab_rails['smtp_ca_file'] = "/etc/ssl/certs/ca-certificates.crt"

### Email Settings

  gitlab_rails['gitlab_email_enabled'] = true

##! If your SMTP server does not like the default 'From: gitlab@gitlab.example.com'
##! can change the 'From' with this setting.
  gitlab_rails['gitlab_email_from'] = 'xxxxxxxxx@qq.com'
  gitlab_rails['gitlab_email_display_name'] = 'gitlab'
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
# gitlab_rails['gitlab_email_smime_enabled'] = false
# gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
# gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'
# gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'

image.png
修改完之后需要重启服务,可以直接用docker restart 重启容器,也可以用以下命令

docker exec -it gitlab bash  # 进入容器
gitlab-rails console  # 重启服务

重启完成后,可以到gitlab的控制台中进行简单测试

# 进入gitlab容器
docker exec -it gitlab bash

# 进入gitlab的控制台
gitlab-rails console    

# 随后执行命令,发送测试邮件
Notify.test_email('xxxxxxxxx@163.com', '邮件主题', '邮件内容啊啊啊').deliver_now

image.png
打开收件邮箱,可以看到测试邮件已发送成功
image.png

3 使用介绍

3.1 基础使用

3.1.1 创建组

image.png

3.1.2 创建项目

image.png
如上图所示,项目和组都有3个级别的权限 Private、Internal、Public

Private 只有组成员才能看到
Internal 只要登录的用户就能看到
Public 所有人都能看到

另外开源项目和组设置的是Internal

3.1.3 创建用户

在memu中点击admin,进入管理员页面,其中可以新建其他用户
创建成功后,再次点击edit 进去才能看到修改密码的框,随便填入一个密码即可,该用户自己登录的时候,首次登录会要求更改密码
image.png

3.1.4 绑定上述,并配置权限

① 将用户添加至刚刚创建的组内,从而令用户可以访问项目
image.png
随后点击右下角的Manage access 即可管理用户,包括其权限等

② 修改用户权限
image.png
上图可以看到,Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

Guest 可以创建issue、发表评论,不能读写版本库
Reporter 可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer 可以克隆代码、开发、提交、push,RD可以赋予这个权限
Maintainer (Master) 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner 可以设置项目访问权限 – Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

3.1.5 push代码

gitlab 默认会开启自带的cicd ,如果用不到的话可以直接禁用了
禁用有2种方式,全局禁用和项目禁用单
image.png

首先登录gitlab,确定项目已创建
image.png
随后将本地的项目push上去,因为没有配置ssh免密登录,所以需要输入账户密码
image.png
image.png
image.png

2条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注