Docker部署Gitlab 16.2.0
# 一、前言
GitLab 是一个用于托管 Git 代码仓库并实现源代码管理的开源代码托管平台。它提供了一套强大的工具和功能,用于团队协作开发、持续集成/持续交付 (CI/CD)、缺陷跟踪、代码审查、Wiki、部署和版本控制等。
GitLab 有两个版本可供选择:GitLab Community Edition (CE)
和 GitLab Enterprise Edition (EE)
。GitLab CE 是开源的免费版本,可以在本地部署和使用。GitLab EE 是付费版本,提供了更多高级功能和支持服务
GitLab 已经成为大多数企业中的代码托管平台,广泛应用于各种规模的团队和组织,帮助开发者更好地协作、管理和交付软件项目。
# 二、安装
# 2.1 镜像下载
docker pull gitlab/gitlab-ce:16.2.0-ce.0
1
# 2.2 启动
docker run -d \
-p 18443:443 \
-p 18080:18080 \
-p 18022:22 \
--name gitlab \
--restart always \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:16.2.0-ce.0
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 端口映射说明
这里容器端口写的18080,其实容器默认的是80,我们后面会修改默认端口,所以这里直接映射修改后的,否则访问会出问题
宿主机端口 | 容器端口 | 作用 |
---|---|---|
18443 | 443 | 将容器内443端口映射至宿主机18443端口,使用https访问时使用 |
18080 | 18080 | 将容器内18080端口映射至宿主机18080端口,使用http访问时使用 |
18022 | 22 | 将容器内22端口映射至宿主机18022端口,使用ssh协议访问时使用 |
- 数据目录映射说明
宿主机目录 | 容器目录 | 作用 |
---|---|---|
/opt/gitlab/config | /etc/gitlab | 用于存储 GitLab 配置文件 |
/opt/gitlab/logs | /var/log/gitlab | 用于存储日志 |
/opt/gitlab/data | /var/opt/gitlab | 用于存储应用数据 |
# 2.3 配置Gitlab访问地址
docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码
# vim /opt/gitlab/config/gitlab.rb
### 取消external_url注释,地址为宿主机地址或者配置域名,我这里为了方便设置域名访问
#### 这里地址加上端口后 重新加载配置后会设置改端口为应该端口,对应上面的18080,把端口配置是为了仓库地址可以完整的显示访问地址信息
external_url 'http://gitlab.tbchip.com:18080'
### 取消注释,这个是pull/push使用ssh协议时的端口
gitlab_rails['gitlab_shell_ssh_port'] = 18022
## 重载服务 重载之后会把一些配置同步至/opt/gitlab/data/gitlab-rails/etc/gitlab.yml此文件中
docker exec -t gitlab gitlab-ctl reconfigure
docker exec -t gitlab gitlab-ctl restart
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 2.4 默认密码
不知道从哪个版本开始,当我们部署好后,第一次访问会不再要求我们设置root密码,而是要从日志中获取
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
1
# 2.5 访问
浏览器只是输入external_url所配置的地址即可,然后默认用户为root
,密码为上面所获取的密码。
# 2.6 配置邮箱
gitlab在实际工作使用中,在admin新开账号时,会自动给新账号绑定的邮箱发送通知邮件,点击邮件中的链接进行激活,首次登陆gitlab会进行密码设置
# vim /opt/gitlab/config/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "***@losinx.com"
gitlab_rails['smtp_password'] = "***"
gitlab_rails['smtp_domain'] = "losinx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = '***@losinx.com'
# 重载服务
docker exec -t gitlab gitlab-ctl reconfigure
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 邮箱测试
[root@iZbp1ig4xiwqs6cqyf6ilsZ ~]# docker exec -it gitlab /bin/bash
root@0f86f871beeb:/# gitlab-rails console
irb(main):002:0> Notify.test_email('***@163.com', 'Message Subject', 'Message Body').deliver_now
### 邮件说明
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
1
2
3
4
5
6
2
3
4
5
6
以上配置之后,当我们再创建用户时指定用户邮箱,会给指定邮箱发送确认链接,点击配置密码及个人信息即可。
编辑 (opens new window)
上次更新: 2023/07/31, 11:42:36