Gitlab之Docker安装
date
Sep 21, 2021
slug
gwiyjisx
status
Published
tags
Gitlab
summary
type
Post
常规在服务器上直接安装请见Gitlab 安装升级备份,本篇文章主要介绍 Gitlab 通过 Docker 安装,通过docker-compose方式。
背景
因公司之前的 Gitlab 是直接安装在系统上的,最近因其他原因需要迁移到另外位置,所以就测试通过 Docker 方式安装 Gitlab,同时满足 Docker 的三权分立。
QS75lT
这么做的好处,大概有如下几点:
- 数据和配置分离,方便升级、迁移、回滚、测试等。
- 除 Gitlab 自带备份方式外,还支持对 volumes 方式的宿主文件进行备份,方便磁盘管理扩展。
- 通过 Docker 部署就自带了 Docker 的优势。
话说不多,先安装Docker。
安装
docker-compose.yml
内容如下:version: "3.9"
services:
gitlab:
container_name: gitlab
image: "gitlab/gitlab-ce:14.2.3-ce.0"
restart: always
hostname: "gitlab.fe.sw"
environment:
TZ: "Asia/Shanghai"
GITLAB_OMNIBUS_CONFIG: |
external_url = "gitlab.fe.sw"
ports:
- "9000:80"
- "9022:22"
volumes:
- "/backups/gitlab:/backups"
- "/opt/dockers/gitlab/config:/etc/gitlab"
- "/opt/dockers/gitlab/logs:/var/log/gitlab"
- "/opt/dockers/gitlab/data:/var/opt/gitlab"
这是最基本的配置,volumes 目录说明:
- config:存储 GitLab 配置信息
- data:存储数据库
- logs:存储日志
接着执行
docker-compose up -d
,即创建了一个运行gitlab-ce 14.2.3
的 Docker 服务,名称叫做gitlab
。下面贴出常用的几个命令:
docker stop/rm gitlab // 停止/删除 gitlab 的 Docker 服务docker exec -it gitlab bash // 进入 gitlab 的 Docker 容器中gitlab-ctl reconfigure // 重新配置 gitlab,可以从滚屏中的绿色文件看到实际变更内容gitlab-ctl start/stop/restart // 启动/停止/重启 gitlab 服务
使用
通过 Web 方式创建一个新仓库,如下图。
E89mLr
注意,上图中圈起来的地址是不能直接用的,分别需要改为:
- SSH:
ssh://git@gitlab.fe.sw:9022/root/test.git
,
- HTTP:
http://gitlab.fe.sw:9000/root/test.git
为啥 SSH 变化会这么大?这是因为由于 Git 的 SSH 和系统 SSH 都使用 22 号端口,所以
docker-compose.yml
里面改了宿主机的映射端口。若通过更改配置 Gitlab 配置文件
gitlab.rb
去控制在 Web 上显示 git clone 地址,感觉是意义不大,所以才有了我的两天踩坑之路,请见Docker 版 Gitlab 与 Host 共享 22 端口。配置
系统直装和 Docker 方式安装,Gitlab 配置可以参考Gitlab 配置和维护。
参考资料: