gitlab 服务搭建小记
给团队搭建一个内网 gitlab 服务
🍕 准备工作 docker
准备好 docker 环境,如果 docker 不能用,可以参考
一个视频解决Docker安装, Pull, 找镜像等难题 Docker停服怎么办?Docker镜像无法拉取_哔哩哔哩_bilibili
🍕 docker 安装 gitlab
// 拉取镜像
docker image pull gitlab/gitlab-ce:latest
// 启动容器
docker run --detach \
--publish 50443:443 --publish 50080:80 --publish 50022:22 \
--name gitlab \
--restart always \
--volume d:/srv/gitlab/config:/etc/gitlab \
--volume d:/srv/gitlab/logs:/var/log/gitlab \
--volume d:/srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
几点说明:
HTTPS / HTTP / SSH 端口映射都没有使用默认端口,因为我这里使用的这台服务器有很多其它服务在跑,为了避免冲突,无奈只能这样了。
在后面使用 ssh 拉取代码时,会需要一些额外的处理。
如果你的 gitlab 服务器是独占的,建议使用默认的端口映射。
--volume 的目录挂载,根据实际情况调整。
如果启动 gitlab 容器出现问题,可以通过 docker logs -f gitlab
来查看日志
🍕 配置 gitlab
编辑 /etc/gitlab/gitlab.rb
文件,修改 external_url
为自定义域名
设置完域名之后,需要配置域名的 DNS 解析,如果是本地测试,可以直接修改 host 文件来处理。
🍕 拉取仓库
SSH 方式
先配置本地 SSH key,并添加到 gitlab 上,这个就是普通的操作,可以参考:
需要注意的是,如果 SSH 端口不是默认的 22,则需要在 config 文件中指定。
~/.ssh/config
# my gitlab
Host gitlab.my.com
Port 50022
HostName gitlab.my.com
User gitlab
IdentityFile ~/.ssh/mygitlab
SSH 连接测试: ssh -p 50022 -T git@gitlab.my.com
配置好之后,就可以使用 SSH 的方式拉取或推送代码了
如果不配置 config 文件,需要使用这样的方式指定端口:
git clone git@gitlab.my.com:app/demo2.git
--->
git clone ssh://git@gitlab.my.com:50022/app/demo2.git
HTTP
在代码仓库中,看到的 http url 类似这样:http://gitlab.my.com/app/demo.git
如果修改了端口,则是无法直接使用的,需要修改成这样才能用:http://gitlab.my.com:50080/app/demo.git
HTTPS
暂时还没有处理 HTTPS 访问,先贴两篇参考文章
GitLab 配置 SSL/https | GitLab/Kubernetes 知识库
gitlab-配置实现https - 奔跑在study的路上 - 博客园
🍕 gitlab 登录
完成 gitlab 配置之后,需要重启 docker
docker restart gitlab
gitlab 的启动比较慢,需要多等一会。
使用 http://gitlab.my.com:50080
(自定义域名:端口) 打开 gitlab
管理员账号是 root
,密码可以通过如下方式获取,获取之后记得保存好。
docker exec -it 容器名字或容器ID grep 'Password:' /etc/gitlab/initial_root_password
🍕 gitlab 内部配置
根据需要,可以设置允许上传的最大文件(仅限管理员权限的用户)
🍕 参考文章
CentOS7 下gitlab修改域名host | The One Like You
处理git clone命令的非标准SSH端口连接 | 我的站点
docker安装gitlab的初始账号密码 - lucky_tomato - 博客园
添加或修改ssh服务的端口 - 小得盈满 - 博客园