首页主机资讯ubuntu中gitlab容器化部署方案

ubuntu中gitlab容器化部署方案

时间2025-10-29 22:21:03发布访客分类主机资讯浏览714
导读:Ubuntu中GitLab容器化部署方案(基于Docker Compose) 一、准备工作 1. 系统更新与工具安装 首先更新系统软件包并安装必要工具,确保后续操作顺利: sudo apt update && sudo ap...

Ubuntu中GitLab容器化部署方案(基于Docker Compose)

一、准备工作

1. 系统更新与工具安装

首先更新系统软件包并安装必要工具,确保后续操作顺利:

sudo apt update &
    &
 sudo apt upgrade -y
sudo apt install -y curl wget nano

2. 安装Docker与Docker Compose

2.1 安装Docker

使用官方脚本快速安装Docker(推荐):

curl -fsSL https://get.docker.com | sudo sh

若脚本执行失败,可手动下载Ubuntu 24.04对应的deb包(如containerd.io_1.7.25-1_amd64.debdocker-ce_28.0.1-1~ubuntu.24.04~noble_amd64.deb等),上传至服务器后通过dpkg -i *.deb安装。

将当前用户加入docker组,避免每次使用docker命令需sudo

sudo usermod -aG docker $USER
newgrp docker  # 或重新登录终端使权限生效

2.2 安装Docker Compose

下载最新版Docker Compose二进制文件并设置权限:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证安装:

docker-compose --version  # 应输出版本号(如v2.33.1)

3. 创建GitLab数据目录

用于持久化存储GitLab的配置、日志和数据(避免容器删除后数据丢失):

mkdir -p ~/gitlab/{
config,logs,data}
    

二、编写Docker Compose文件

~/gitlab目录下创建docker-compose.yml文件,内容如下:

version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest  # 社区版(若需企业版则替换为gitlab/gitlab-ee:latest)
    container_name: gitlab
    restart: always  # 开机自启
    hostname: 'gitlab.yourdomain.com'  # 替换为你的域名或服务器IP
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.yourdomain.com'  # 外部访问地址(需与hostname一致)
        gitlab_rails['time_zone'] = 'Asia/Shanghai'  # 设置时区(根据需求调整)
    ports:
      - "80:80"     # HTTP端口(用于Web界面)
      - "443:443"   # HTTPS端口(可选,需配置SSL)
      - "2222:22"   # SSH端口(避免与宿主机SSH冲突,默认22端口易被占用)
    volumes:
      - ./config:/etc/gitlab  # 配置文件挂载
      - ./logs:/var/log/gitlab  # 日志文件挂载
      - ./data:/var/opt/gitlab  # 数据文件挂载(核心数据,如仓库、数据库)
    shm_size: '256m'  # 共享内存大小(解决GitLab运行时的内存不足问题)

关键参数说明

  • hostname:必须与external_url一致,否则会导致GitLab无法正常访问。
  • ports2222:22将宿主机的2222端口映射到容器的22端口(SSH默认端口),避免与宿主机SSH服务冲突。
  • volumes:持久化存储GitLab的关键数据,确保容器重启或删除后数据不丢失。
  • shm_size:共享内存大小,GitLab运行时需要足够的内存(建议至少256MB)。

三、启动GitLab容器

进入~/gitlab目录,执行以下命令启动GitLab容器:

cd ~/gitlab
docker-compose up -d

-d参数表示后台运行容器。启动后,可通过以下命令查看容器状态:

docker-compose ps

若容器状态为Up,则表示启动成功。

四、访问与初始化GitLab

1. 获取初始root密码

GitLab首次启动后,root用户的初始密码会生成在~/gitlab/config/initial_root_password文件中(有效期24小时):

cat ~/gitlab/config/initial_root_password

复制密码,用于首次登录。

2. 浏览器访问GitLab

在浏览器中输入http://gitlab.yourdomain.com(替换为hostname或服务器IP),进入GitLab Web界面。
首次登录时,使用root用户和上述初始密码登录。

3. 首次登录配置

  • 登录后,系统会提示修改root用户密码(建议设置强密码)。
  • 进入GitLab后,若出现“Check your sign-up restrictions”提示,点击“Deactivate”禁用注册限制(生产环境可根据需求开启)。

五、常见问题解决

1. SSH端口冲突

若宿主机22端口已被其他服务(如SSH)占用,可将docker-compose.yml中的ports部分修改为2222:22(如上述配置),然后通过ssh -p 2222 root@gitlab.yourdomain.com访问GitLab的SSH服务。

2. 防火墙配置

若服务器启用了防火墙(如UFW),需开放对应端口:

sudo ufw allow 80/tcp  # HTTP
sudo ufw allow 443/tcp # HTTPS(可选)
sudo ufw allow 2222/tcp # SSH(若修改了端口)
sudo ufw reload

3. 日志排查

若GitLab无法启动,可通过以下命令查看容器日志:

docker-compose logs -f

根据日志中的错误信息(如端口冲突、磁盘空间不足等)进行排查。

六、后续优化(可选)

1. 配置HTTPS

为提升安全性,建议为GitLab配置SSL证书(如Let’s Encrypt免费证书)。步骤如下:

  • 安装Certbot:
    sudo apt install -y certbot python3-certbot-nginx
    
  • 获取证书:
    sudo certbot --nginx -d gitlab.yourdomain.com
    
  • 修改docker-compose.yml中的GITLAB_OMNIBUS_CONFIG,添加SSL配置:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.yourdomain.com'
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
    
  • 重启GitLab容器:
    docker-compose down &
        &
         docker-compose up -d
    

2. 高可用配置

对于生产环境,建议配置GitLab高可用(HA),通过多个节点实现负载均衡和故障转移。具体步骤可参考GitLab官方文档。

通过以上步骤,即可在Ubuntu上完成GitLab的容器化部署。容器化部署具有轻量、灵活、易于迁移等优点,适合快速搭建GitLab实例。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu中gitlab容器化部署方案
本文地址: https://pptw.com/jishu/738251.html
ubuntu中gitlab日志分析技巧 ubuntu上gitlab权限管理详解

游客 回复需填写必要信息