linux

Linux下GitLab的容器化部署方法

小樊
33
2025-09-19 02:28:39
栏目: 智能运维

Linux下GitLab容器化部署指南(基于Docker)

一、准备工作

  1. 安装Docker
    根据Linux发行版选择安装方式(以Ubuntu为例):
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl openssh-server ca-certificates tzdata
    curl -fsSL https://get.docker.com | sudo bash
    sudo systemctl enable --now docker
    
  2. 安装Docker Compose(可选但推荐)
    用于简化多容器应用管理,安装命令:
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    

二、容器化部署GitLab

方法1:使用Docker Compose(推荐)

  1. 创建挂载目录
    用于持久化GitLab的配置、日志和数据(避免容器删除后数据丢失):
    mkdir -p /opt/gitlab/{config,logs,data}
    
  2. 编写docker-compose.yml文件
    /opt/gitlab目录下创建docker-compose.yml,内容如下:
    version: '3.8'
    services:
      gitlab:
        image: gitlab/gitlab-ce:latest  # 使用社区版(免费)
        container_name: gitlab
        restart: always  # 容器退出时自动重启
        hostname: 'gitlab.example.com'  # 替换为你的服务器IP或域名
        ports:
          - '8080:80'    # HTTP端口(Web访问)
          - '8443:443'   # HTTPS端口
          - '2222:22'    # SSH端口(避免与宿主机冲突)
        volumes:
          - './config:/etc/gitlab'     # 配置文件挂载
          - './logs:/var/log/gitlab'   # 日志文件挂载
          - './data:/var/opt/gitlab'   # 数据文件挂载(仓库、数据库等)
        shm_size: '256m'  # 共享内存(解决数据库性能问题)
    
  3. 启动GitLab容器
    /opt/gitlab目录下执行:
    docker-compose up -d
    
    查看容器状态:docker-compose ps(若状态为"Up"则启动成功)。

方法2:使用Docker命令行(单容器)

  1. 拉取GitLab镜像
    docker pull gitlab/gitlab-ce:latest
    
  2. 创建并启动容器
    docker run -d \
      --hostname gitlab.example.com \
      --name gitlab \
      --restart always \
      -p 8080:80 -p 8443:443 -p 2222:22 \
      -v /opt/gitlab/config:/etc/gitlab \
      -v /opt/gitlab/logs:/var/log/gitlab \
      -v /opt/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
    

三、初始配置

  1. 获取root初始密码
    GitLab启动后,初始root用户的密码会保存在容器内的/etc/gitlab/initial_root_password文件中,通过以下命令查看:
    docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    
  2. 访问Web界面
    浏览器输入http://<服务器IP>:8080,使用root账号和上述密码登录。
  3. 修改基础配置(可选)
    若需修改外部URL(如使用域名)或SSH端口,进入容器编辑gitlab.rb文件:
    docker exec -it gitlab vim /etc/gitlab/gitlab.rb
    
    示例配置(修改external_url和SSH端口):
    external_url 'http://gitlab.example.com'  # 替换为你的域名或IP
    gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 与docker-compose中的SSH端口一致
    
    保存后重新加载配置:
    docker exec -it gitlab gitlab-ctl reconfigure
    docker exec -it gitlab gitlab-ctl restart
    

四、后续操作

  1. 备份与恢复
    • 备份:定期创建数据备份(默认存储在/var/opt/gitlab/backups):
      docker exec -t gitlab gitlab-backup create
      
    • 恢复:将备份文件复制到宿主机的/opt/gitlab/data/backups目录,执行恢复命令:
      docker exec -t gitlab gitlab-backup restore BACKUP=<备份文件名>
      
  2. 优化性能
    • 调整Docker Compose中的shm_size(共享内存)以提升数据库性能(如shm_size: '512m')。
    • 关闭不必要的服务(如Prometheus),修改gitlab.rb中的monitoring配置。

注意事项

0
看了该问题的人还看了