Gitlab之Docker安装

date
Sep 21, 2021
slug
gwiyjisx
status
Published
tags
Gitlab
summary
type
Post
 
常规在服务器上直接安装请见Gitlab 安装升级备份,本篇文章主要介绍 Gitlab 通过 Docker 安装,通过docker-compose方式。

背景

因公司之前的 Gitlab 是直接安装在系统上的,最近因其他原因需要迁移到另外位置,所以就测试通过 Docker 方式安装 Gitlab,同时满足 Docker 的三权分立。
notion image
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 方式创建一个新仓库,如下图。
notion image
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 配置和维护

参考资料:

© 刘德华 2020 - 2023