GitLab CE搭建指南

在现代软件开发流程中,代码仓库管理系统已成为团队协作的核心工具。 GitLab Community Edition(CE)作为一款MIT协议的开源的代码管理平台,集成了代码托管、持续集成、项目管理、安全扫描等全栈开发功能,为开发者提供了一站式的 DevOps 解决方案。本指南旨在为技术团队提供一份结构清晰、步骤明确的 GitLab CE Docker 方式部署手册,帮助用户快速构建安全可靠的代码管理环境。


1.需求配置

CPU需要2~4核心,内存4~8GB即可,储存空间根据代码规模决定。

2. 使用Docker安装Gitlab

# Docker Compose 配置文件用于部署 GitLab Community Edition (CE)
# 注意:请根据实际环境调整配置参数

services:
  gitlab:
    # 使用官方 GitLab CE 最新镜像
    image: gitlab/gitlab-ce:latest
    # 容器名称(可通过 docker ps 查看)
    container_name: gitlab
    # 重启策略(always: 始终重启,除非容器被手动停止)
    restart: always
    # 宿主主机名(需与 external_url 域名一致)
    hostname: 'gitlab.example.com'

    environment:
      # GitLab 配置参数入口(通过 omnibus GitLab 配置文件)
      GITLAB_OMNIBUS_CONFIG: |
        # 自定义 gitlab.rb 配置(每行一个配置项)
        # 配置外网访问地址(必须使用 HTTPS)
        external_url 'https://git.procoding.cn' # 替换为你的实际域名

    ports:
      # 端口映射说明:
      # - HTTP 80 -> 容器 80(需配合 HTTPS 证书使用)
      # - HTTPS 443 -> 容器 443(实际 HTTPS 请求入口)
      # - SSH 22 -> 容器 22(代码克隆与 Git 操作)
      - '80:80'
      - '443:443'
      - '22:22'

    volumes:
      # 目录挂载说明:
      # - 系统配置文件(包含 gitlab.rb)
      - '/data/gitlab/config:/etc/gitlab'
      # - 日志目录(包括系统日志和 CI 构建日志)
      - '/data/gitlab/logs:/var/log/gitlab'
      # - 数据存储(包含数据库、仓库、上传文件等)
      - '/data/gitlab/data:/var/opt/gitlab'

    # 共享内存设置(GitLab CI/CD 需要较大共享内存)
    # 默认 shm_size 是64MB,GitLab 推荐至少 256MB
    shm_size: '256m'

保存为gitlab.yaml ,执行命令:

mkdir -p /data/gitlab/{config,logs,data}
chmod -R 775 /data/gitlab
docker-compose -f gitlab.yaml up -d

输入刚才的网址,账号root,使用下面的密码即可登录。

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

启用HTTPS并配置证书,修改/etc/gitlab/gitlab.rb文件,配置这几行:

nginx['enable'] = true
nginx['redirect_http_to_https'] = false
nginx['ssl_certificate'] = "/etc/gitlab/ssl/_.procoding.crt" #你的证书crt路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/_.procoding.key" #你的证书key路径

然后重启容器

docker restart gitlab

优化建议:

1. /etc/gitlab/gitlab.rb 中减少puma-worker数量,gitlab的puma-worker是本机的核心线程数+1,也就是CPU越多puma-worker线程数就越多,导致CPU内存占用过多,最终内存耗尽导致业务崩溃。
gitlab-puma-worker 是 GitLab 使用的 Puma 应用服务器的工作进程。它是实际执行 GitLab 核心 Web 应用逻辑、处理用户浏览器和 API 请求的进程。

puma['enable'] = true
# puma['ha'] = false
# puma['worker_timeout'] = 60
puma['worker_processes'] = 2 #禁用或者限制worker_processes
puma['min_threads'] = 2
puma['max_threads'] = 4

Jenkins + CICD流水线构建指南 REK2 搭建6节点K8S教程(一):系统准备 REK2 搭建6节点K8S教程(三):RKE节点安装
View Comments
There are currently no comments.