云计算百科
云计算领域专业知识百科平台

Docker部署GitLab服务器

一、GitLab介绍

1.1 GitLab简介

  • GitLab 是一款基于 Git 的开源代码托管平台,集成了版本控制、代码审查、问题跟踪、持续集成与持续交付(CI/CD)等多种功能,旨在为团队提供一站式的项目管理解决方案。
  • 借助 GitLab,开发团队可以高效协作,轻松管理代码版本,并通过内置的 DevOps 工具加速开发、测试和部署过程。
  • GitLab 的独特优势在于其完整的容器化部署方案,官方支持与 Kubernetes 等容器编排平台的无缝集成,使平台更加易于管理、扩展,并支持现代化云原生架构。

  • 1.2 GitLab特点

  • 全面的功能支持:
    • GitLab 不仅是一个代码仓库管理工具,还提供自动化构建、测试、部署等强大的 DevOps 功能,是现代化软件开发和团队协作的理想选择。
  • Web 管理界面:
    • 基于 Web 的操作界面,方便用户在浏览器中进行仓库管理、代码审查和 CI/CD 配置。
  • 主要功能特点:

    • 代码仓库管理:
      • 支持分支管理、合并请求(Merge Requests)和代码审查等功能,为团队提供高效的协作环境。
    • 代码托管:
      • 无论是私有服务器还是公共云平台,GitLab 都支持全面的代码托管方案,满足不同规模团队的需求。
    • 内置 CI/CD 工具:
      • GitLab 提供持续集成和持续交付工具,支持自动化构建、测试和部署,并包含强大的可视化管道编辑器和测试报告功能。
    • 安全管理:
      • 支持多级用户权限、角色管理、双因素身份验证(2FA)、代码扫描和漏洞检测等功能,全面保障代码安全。
    • DevOps 平台:
      • GitLab 提供完整的 DevOps 生命周期管理,包括计划、创建、验证、发布、配置和监控,助力团队高效协作,加速软件交付。

    二、本次实践介绍

    2.1 本地环境规划

    本次实践为个人测试环境,操作系统版本为centos7.9。

    hostnameIP地址操作系统版本Docker版本
    docker 192.168.1.50 centos 7.9 26.1.4

    2.2 本次实践介绍

    1.本次实践部署环境为个人测试环境,生产环境请谨慎使用; 2.在Docker环境下成功部署GitLab服务器。

    三、本地环境检查

    3.1 检查Docker服务状态

    检查Docker服务是否正常运行,确保Docker正常运行。

    [root@localhost /]# systemctl status docker
    ● docker.service – Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
    Active: active (running) since 六 2024-12-21 23:07:14 CST; 3h 29min ago
    Docs: https://docs.docker.com
    Main PID: 34141 (dockerd)
    Tasks: 67
    Memory: 151.2M
    CGroup: /system.slice/docker.service

    docker安装教程:https://note.wym123.cn/docker/install/

    3.2 检查Docker版本

    检查Docker版本

    [root@localhost /]# docker version
    Client: Docker Engine – Community
    Version: 26.1.4
    API version: 1.45
    Go version: go1.21.11
    Git commit: 5650f9b
    Built: Wed Jun 5 11:32:04 2024
    OS/Arch: linux/amd64
    Context: default

    Server: Docker Engine – Community
    Engine:
    Version: 26.1.4
    API version: 1.45 (minimum version 1.24)
    Go version: go1.21.11
    Git commit: de5c9cf
    Built: Wed Jun 5 11:31:02 2024
    OS/Arch: linux/amd64
    Experimental: false
    containerd:
    Version: 1.6.33
    GitCommit: d2d58213f83a351ca8f528a95fbd145f5654e957
    runc:
    Version: 1.1.12
    GitCommit: v1.1.12-0-g51d5e94
    docker-init:
    Version: 0.19.0
    GitCommit: de40ad0

    3.3 检查docker compose 版本

    检查Docker compose版本,确保2.0以上版本。

    [root@localhost /]# docker compose version
    Docker Compose version v2.27.1

    三、Docker Compse版本升级(可选)

    1. 从 GitHub 下载 Docker Compose

  • 打开 GitHub Docker Compose 官方发布页面:
    • 地址:https://github.com/docker/compose/releases
  • 找到需要的版本,下载适合你的系统架构的二进制文件(如 Linux 的 docker-compose-linux-x86_64)。
  • 在这里插入图片描述

    提示: 如果最新版没有提供二进制文件,可以选择较低版本,直到找到对应的文件。


    2. 上传到 Linux

  • 将下载的文件通过工具(如 scp 或 WinSCP)上传到 /usr/local/bin 目录:

    scp docker-compose-linux-x86_64 root@<your-server-ip>:/usr/local/bin/

  • 上传后,将文件重命名为 docker-compose:

    mv /usr/local/bin/docker-compose-linux-x86_64 /usr/local/bin/docker-compose


  • 3. 添加执行权限

    为二进制文件添加可执行权限:

    chmod +x /usr/local/bin/docker-compose


    4. 验证安装

  • 查看 Docker Compose 版本,验证是否安装成功:

    docker-compose version

  • 如果提示权限错误(如 Permission denied),需要重新添加可执行权限:

    chmod +x /usr/local/bin/docker-compose

  • 四、下载GitLab镜像

    从docker hub下载GitLab镜像

    [root@docker gitlab]# docker pull gitlab/gitlab-ce:latest
    latest: Pulling from gitlab/gitlab-ce
    7b1a6ab2e44d: Already exists
    6c37b8f20a77: Pull complete
    f50912690f18: Pull complete
    bb6bfd78fa06: Pull complete
    2c03ae575fcd: Pull complete
    839c111a7d43: Pull complete
    4989fee924bc: Pull complete
    666a7fb30a46: Pull complete
    Digest: sha256:5a0b03f09ab2f2634ecc6bfeb41521d19329cf4c9bbf330227117c048e7b5163
    Status: Downloaded newer image for gitlab/gitlab-ce:latest
    docker.io/gitlab/gitlab-ce:latest

    五、部署GitLab服务器

    5.1 创建目录

  • 创建 GitLab 数据目录 为了确保容器内的 GitLab 数据持久化,需要在宿主机上创建专用目录。执行以下命令:

    mkdir -p /data/gitlab/{data,logs,config} && cd /data/gitlab/

    • /data/gitlab/data:存储 GitLab 的数据(如仓库和数据库)。
    • /data/gitlab/logs:存储 GitLab 的日志文件。
    • /data/gitlab/config:存储 GitLab 的配置文件。
    • && cd /data/gitlab/:进入创建的主目录。

  • 5.2 编辑 docker-compose.yml 文件

  • 创建或编辑 Docker Compose 配置文件: 使用文本编辑器创建并编辑 docker-compose.yml 文件:

    vim /data/gitlab/docker-compose.yml

  • 完整的 docker-compose.yml 示例:

    version: "3"
    services:
    gitlab:
    container_name: gitlab # 容器名称
    image: gitlab/gitlabce:latest # 使用 GitLab 社区版最新镜像
    hostname: '192.168.0.50' # 配置主机名(本地或虚拟机 IP)
    restart: always # 容器意外停止时自动重启
    ports:
    8088:80 # 映射 HTTP 端口
    8443:443 # 映射 HTTPS 端口
    2222:22/tcp # 映射 SSH 端口
    volumes:
    /etc/localtime:/etc/localtime # 同步宿主机时间
    /data/gitlab/data:/var/opt/gitlab # 数据存储路径
    /data/gitlab/config:/etc/gitlab # 配置文件路径
    /data/gitlab/logs:/var/log/gitlab # 日志文件路径
    environment:
    GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://192.168.0.50:80' # 外部访问 URL
    gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 配置 SSH 端口

    deploy:
    resources:
    limits: # 设置资源限制
    memory: 4G # 最大内存使用
    reservations: # 保留资源
    memory: 1G # 最低内存保留

    在这里插入图片描述

  • 注意事项:external_url 中指定的端口号不仅是访问路径的一部分,它还会影响 GitLab 应用本身的监听端口。例如,如果设置为 http://192.168.0.50:8088,GitLab 会在 8088 端口上监听并提供服务(是对于gitlab内部而言的),而不是默认的 80(HTTP)端口, 我们的访问路径是ip+映射后的端口号,不是external_url里面提供的。


    5.3 部署 GitLab

  • 启动容器: 使用 Docker Compose 命令启动 GitLab 容器:

    docker compose up -d

    • up:启动容器。
    • -d:以守护进程模式运行容器(后台运行)。
    • 在这里插入图片描述
  • 运行结果:

    • 执行后,Docker Compose 将下载 gitlab/gitlab-ce:latest 镜像并启动容器。

    • 可以通过以下命令查看运行状态:

      docker ps

    • 输出示例:

      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      123456789abc gitlab/gitlab-ce:latest "/assets/wrapper" 2 minutes ago Up 1 minute 0.0.0.0:80->80/tcp, 0.0.0.0:8443->443/tcp gitlab

  • 六、访问gitlab仓库

    6.1 进入 GitLab 登录页

  • 访问 GitLab Web 界面 在浏览器中输入以下地址访问 GitLab 登录页:

    http://192.168.0.50:80

    • 注意:将 192.168.0.50 替换为您部署 GitLab 的服务器 IP 地址。

    • 如果配置了 HTTPS,则访问地址为:

      https://192.168.0.50:8443

    在这里插入图片描述


  • 6.2 获取初始密码

    在 GitLab 容器的首次启动过程中,会生成默认的超级管理员账号 root 和随机密码。初始密码可以通过以下命令查看:

  • 查看初始密码文件 在容器中查看初始密码:

    docker exec -it gitlab cat /etc/gitlab/initial_root_password

    输出示例:

    Password: KfK95J1yFzESkYkNjEkj

    说明:

    • 密码文件位于 /etc/gitlab/initial_root_password。
    • 该密码仅在首次启动时有效。
  • 删除初始密码文件(可选) 为了安全起见,可以在记下初始密码后删除该文件:

    docker exec -it gitlab rm /etc/gitlab/initial_root_password


  • 6.3 重置登录密码(如有需要)

    如果遗忘了超级管理员密码,可以通过以下步骤进行重置:

  • 进入 GitLab 容器内部 使用 Docker 命令进入容器:

    docker exec -it gitlab /bin/bash

    • docker exec:在运行中的容器内执行命令。
    • gitlab:GitLab 容器的名称。

    输出示例:

    [root@docker gitlab]# docker exec -it gitlab /bin/bash
    root@192:/#

  • 进入 Rails 控制台 启动 GitLab 的 Rails 控制台:

    gitlab-rails console -e production

    • -e production:以生产环境模式启动控制台。
  • 查询超级管理员用户 查询超级管理员用户信息(默认用户 ID 为 1):

    user = User.where(id: 1).first

    示例图片: 在这里插入图片描述

  • 修改密码 设置新的密码(以 admin36987 为例):

    user.password = 'admin36987'

  • 保存修改并退出 保存新密码并退出控制台:

    user.save! # 保存更改
    exit # 退出控制台

    示例图片: 在这里插入图片描述


  • 6.4 访问 GitLab 首页

  • 使用初始密码或修改后的账号密码登录 GitLab:

    • 用户名:root
    • 密码:初始密码或修改后的密码(如 admin36987)。

    修改密码: 在这里插入图片描述

  • 首次登录时提示设置新密码 如果使用初始密码登录,GitLab 会提示您设置新密码。


  • 6.5 设置中文语言

  • 进入 Preferences 页面 登录后,点击右上角头像,进入 Preferences 页面:

    Profile > Preferences

  • 修改语言设置 在 Preferences 页面找到 Localization 区域,将 Language 选项修改为 简体中文。

    示例图片:

    • 修改前: 在这里插入图片描述

    • 修改后: 在这里插入图片描述

  • 保存设置 点击保存按钮,刷新界面后语言会立即切换为简体中文。

  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » Docker部署GitLab服务器
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!