服务器 | 2026年Ubuntu 24.04下GitLab Docker 企业级部署

文章目录

概要

GitLab 代码库平台

  • GitLab 是一个基于 Git 的 开源代码托管DevOps 平台
  • 提供从代码管理持续集成与部署(CI/CD)到项目协作的一站式解决方案。

注:

  • GitLab本身提供CI/CD功能
  • 也可以集成 Jenkins 这把高度灵活的"瑞士军刀",实现高级定制,以便处理高复杂度的流水线。

话不多说,直接进入环境准备流程。GO、GO、GO......

一、环境准备

系统要求:

  • Ubuntu 24.04.3 LTS,尽量上最新的长期支持版。
  • 至少4GB内存(推荐8GB以上)
  • 20GB以上可用磁盘空间

以下都是使用 VMware虚拟机 进行测试,主打的就是方便。

当然,如果您是土豪。云主机、新电脑 随意发挥。

二、安装Docker和Docker Compose

简单介绍一下二者:

  • Docker 开源的容器化平台
    • 核心是让你能够将应用及其所有依赖(如代码、运行时、系统库 等)打包进容器中。
  • Docker Compose 定义和运行多容器 Docker 应用 的工具。
    • 部署一个包含 Web 服务器、后端应用和数据库的完整服务时,Docker Compose 通过 YAML 配置文件来实现。
    • 称之为:编排部署

1、一键替换为国内镜像源

bash 复制代码
# 1. 先备份原有的源配置文件(以防万一)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 2. 将官方源替换为阿里云镜像源
# 注意:如果你是 Ubuntu 24.04,这里的 noble 正好对应;如果是其他版本,可能需要调整代号
sudo sed -i 's|http://.*archive.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list

sudo sed -i 's|http://.*security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list

2、安装必要依赖

bash 复制代码
# 1、更新软件源
sudo apt-get update

# 2、安装三个用于安全下载和验证软件来源的必要工具
sudo apt-get install -y ca-certificates curl gnupg

3、添加 Docker 官方 GPG 密钥

bash 复制代码
# 1、以管理员权限创建一个用于存放 GPG 公钥的专用目录
sudo install -m 0755 -d /etc/apt/keyrings

# 2、将 Docker 官方的 GPG 公钥下载并转换格式,存入刚创建的目录
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3、确保系统中的所有用户,都有权限读取密钥文件
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4、 设置 Docker APT 仓库

bash 复制代码
# 写入了系统的软件源配置文件
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5、安装 Docker Engine

bash 复制代码
# 1、更新软件
sudo apt-get update

# 2、安装Docker 社区版引擎、命令行界面、命令行界面、构建工具插件、docker-compose-plugin
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 3、查看docker版本
docker --version

三、创建GitLab部署目录

bash 复制代码
# 1、
sudo mkdir -p /srv/gitlab/{config,logs,data}

四、编写Docker Compose配置文件

yaml 复制代码
services:
  gitlab:
    image: gitlab/gitlab-ce:latest # 使用 GitLab 社区版最新镜像
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://你的服务器IP或域名' # 替换为你的服务器IP或域名
        gitlab_rails['gitlab_ssh_host'] = '服务器IP'
        # 如果你的服务器SSH端口不是22,需要在这里指定Git SSH端口
        gitlab_rails['git_ssh_port'] = 2222
        
    ports:
      - '80:80'   # HTTP 访问
      - '443:443' # HTTPS 访问
      - '2222:22'   # SSH 访问 (如果冲突,可改为 '2222:22')
    volumes:
      - /srv/gitlab/config:/etc/gitlab   # 配置文件
      - /srv/gitlab/logs:/var/log/gitlab   # 日志文件
      - /srv/gitlab/data:/var/opt/gitlab # 应用数据
    shm_size: '256m' # 共享内存大小,有助于避免某些错误

五、启动GitLab服务

bash 复制代码
# 1、启动 GitLab
docker compose up -d

# 2、查看启动日志
docker compose logs -f gitlab

# 3、检查容器状态
docker ps

# 4、等待服务完全启动(首次启动需要3-5分钟)
watch -n 5 'docker ps | grep gitlab'

六、获取初始密码并登录

GitLab 首次启动后会自动生成一个管理员 root 的初始密码。

bash 复制代码
# 宿主机上执行以下命令查看初始密码
docker compose exec gitlab grep 'Password:' /etc/gitlab/initial_root_password

访问你在 external_url 中配置的地址。

常用运维命令

bash 复制代码
# 查看容器状态
docker ps -a | grep gitlab

# 查看实时日志
docker logs -f gitlab

# 进入容器bash
docker exec -it gitlab /bin/bash

# 重启GitLab服务
docker exec -it gitlab gitlab-ctl restart

# 停止服务
docker-compose down

# 备份数据
docker exec -it gitlab gitlab-backup create

# 查看备份文件
ls -lh data/backups/

总结

截止目前,成功在Ubuntu 24.04.3上部署了GitLab CE。

Docker部署方式具有环境隔离、易于迁移和版本控制等优势。

各位再见!这里是 鳄鱼杆的空间 ,钓......鳄鱼的杆儿!

期待下次再会!

愿你的每一次垂钓之旅都能满载而归。

相关推荐
铅笔小新z2 小时前
【Linux】进程(中)
linux·运维·服务器
白毛大侠2 小时前
Linux 常用命令速查手册
linux·运维·服务器
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(五):<线程同步与互斥>线程互斥
linux·运维·服务器·c语言·c++·学习·ubuntu
Yeats_Liao2 小时前
混合部署架构:CPU+GPU协同推理的任务调度策略
服务器·arm开发·人工智能·架构·边缘计算
weixin_457260502 小时前
Linux 命令精讲(博客案例)
linux·运维·服务器
wefg12 小时前
【计算机网络】应用层协议(序列化与反序列化/HTTP/HTTPS)
服务器·网络·计算机网络
Elendill2 小时前
【Ubuntu】Mihomo 安装、systemd 托管、TUN 配置、API 测速与切换节点
linux·运维·ubuntu
门思科技2 小时前
KS31:4-20mA设备如何低成本接入LoRaWAN实现无线化改造
服务器
青枣八神2 小时前
如何让手机访问电脑本地的前端服务器网页(Vite等前端项目)
服务器·前端·web·手机访问