使用 docker-compose 部署 Gitlab
现在基本上每个公司,只要有代码开发工作,都会搭建 Gitlab 代码托管服务器,很少有公司再使用 SVN 等其它代码托管服务器了。
本篇博客介绍如何快速搭建 Gitlab 服务器,有关 Gitlab 的使用方法,限于篇幅,这里就不介绍了。
作为一名开发人员,搭建完成后,自己最好要仔细研究一下各项功能的用法,否则可能在公司里面没法混下去。
我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose
我们采用国外的一名大佬在 GitHub 上已经编写好的 docker-compose.yml,根据自己的实际需求,简单修改一下就可以使用。
GitHub 地址为:https://github.com/sameersbn/docker-gitlab
如果 GitHub 无法访问,可以参考我之前的博客进行解决:https://www.cnblogs.com/studyjobs/p/17909443.html
一、快速搭建 Gitlab
首先访问 GitHub 地址 https://github.com/sameersbn/docker-gitlab/releases 下载最新版本的代码
目前我所遇到的最新版本是 16.8.2,下载 zip 包 docker-gitlab-16.8.2.zip 并进行解压缩,里面有 docker-compose.yml 文件
我们首先在自己的虚拟机上创建 /app/gitlab 目录,并创建相关的子目录,结构如下所示:
Gitlab 需要使用到 Redis 和 Postgresql 数据库,因此需要创建相应的子目录,存储其数据文件。
然后根据自己的需要,参考压缩包中的 docker-compose.yml 内容,复制过来修改一下,我经过测试,使用了最精简的内容:
version: '3.5'
services:
redis:
container_name: redis
restart: always
image: redis:6.2.6
ports:
- 6379:6379
volumes:
- /app/gitlab/redis-data:/data
networks:
- gitlab_net
postgresql:
container_name: postgresql
restart: always
image: sameersbn/postgresql:14-20230628
volumes:
- /app/gitlab/postgresql-data:/var/lib/postgresql
ports:
- 5432:5432
environment:
- DB_USER=gitlab
- DB_PASS=gitlab123
- DB_NAME=gitlabdb
- DB_EXTENSION=pg_trgm,btree_gist
networks:
- gitlab_net
gitlab:
container_name: gitlab
restart: always
image: sameersbn/gitlab:16.8.2
depends_on:
- redis
- postgresql
ports:
- "8080:80"
- "8022:22"
volumes:
- /app/gitlab/gitlab-data:/home/git/data
networks:
- gitlab_net
environment:
- DEBUG=false
# 配置连接 postgresql 的信息
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=gitlab123
- DB_NAME=gitlabdb
# 配置连接 redis 的信息
- REDIS_HOST=redis
- REDIS_PORT=6379
# 配置时区
- TZ=Asia/Shanghai
- GITLAB_TIMEZONE=Asia/Shanghai
# 禁用 https 以及自签名功能
- GITLAB_HTTPS=false
- SSL_SELF_SIGNED=false
# 配置服务地址(由于在容器内,配置localhost即可),端口等信息
- GITLAB_HOST=localhost
- GITLAB_PORT=8080
- GITLAB_SSH_PORT=8022
# 以下 3 个配置项必须要有,否则无法启动 gitlab 服务
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
# 禁用通知功能
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=false
- GITLAB_NOTIFY_PUSHER=false
# 禁用自动备份功能
- GITLAB_BACKUP_SCHEDULE=disable
# 禁用 smtp 功能
- SMTP_ENABLED=false
# 禁用 imap 功能
- IMAP_ENABLED=false
# 禁用 oAuth 认证
- OAUTH_ENABLED=false
networks:
gitlab_net:
driver: bridge
有关 Gitlab 镜像中 environment 下面可以配置的相关参数及其含义,可以参考上面给出的 GitHub 访问地址的首页。
我在实际测试过程中发现:有些配置项使用的话,可能会报错;有的使用后不起作用。可能是我用法不当,也可能是新版本存在 bug,有待完善。
不过可以肯定的是:上面贴出来的 docker-compose.yml 内容是我踩坑摸索出来的精简内容,绝对可以放心使用。
然后运行 docker-compose up -d
命令启动服务,需要注意的时,Gitlab 服务启动速度比较慢,可能需要 2 分钟。
可以使用 docker-compose logs -f gitlab
实时查看 gitlab 服务的启动日志,过了几分钟等待日志不再滚动后就启动成功了。
二、验证部署成果
由于我采用的是 8080 端口,因此访问 http://192.168.136.128:8080
即可
默认的超级管理员账号是 root
,邮箱是 admin@example.com
,密码是 5iveL!fe
,不过首次访问会提示修改默认登录密码:
修改完密码后,就可以登录了,使用默认用户名是 root
或邮箱 admin@example.com
,结合修改后的密码都可以登录。
如果觉的用户名和邮箱名称不合适的话,登录进去之后,也是可以修改的,稍后会介绍如何修改。
登录进去之后,默认界面是英文界面,我们可以修改成中文界面,具体做法如下图:
在右侧页面往下拉,找到 Localization ,在 Language 下拉列表中选择简体中文,然后点击底部的 Save changes 保存。
然后刷新一下页面,整个界面就变成中文界面了,这样就比较方便学习和研究 Gitlab 的相关功能了。
我们肯定会在 Gitlab 上创建其它用户账号,为了能够让新创建的账号,首次登录系统也展示中文界面,可以进行如下操作:
由于当前是超级管理员用户,因此在左侧菜单下面有【管理中心】按钮,点击进入管理中心后,找到本地化,下拉列也选择【简体中文】即可。
如果想要修改用户名和邮箱,使用新的用户名和邮箱进行登录,可以在左侧菜单【概览】下面选择【用户】,编辑用户的信息即可。
以上就是 docker-compose 部署 Gitlab 的介绍,不熟悉的小伙伴们,赶紧自己部署一下,仔细研究和体验一下 Gitlab 吧。
具体如何使用,这里就不介绍了,可以自己在 Gitlab 上创建项目,使用 IDEA 或 Visual Studio 进行代码上传和开发交互。
都已经变成中文界面了,学习和研究没有什么难度,尤其是开发人员,必须得熟练掌握 Gitlab ,不然没法在公司里面混的。