centos

CentOS上GitLab的容器化部署如何实现

小樊
35
2025-04-30 19:50:35
栏目: 智能运维

在CentOS上通过Docker容器化部署GitLab,可以按照以下步骤进行。这种方法不仅简化了安装过程,还便于管理和扩展。以下是详细的步骤指南:

前提条件

  1. 操作系统:确保你使用的是CentOS 7或更高版本。
  2. 用户权限:建议使用具有sudo权限的用户进行操作。
  3. Docker环境:CentOS 7需要先安装Docker,CentOS 8及以上版本Docker已预装或易于安装。

步骤一:更新系统并安装必要的依赖

首先,更新现有的软件包并安装Docker及其相关依赖:

sudo yum update -y
sudo yum install -y policycoreutils openssh-server

步骤二:配置Docker仓库并启动Docker服务

  1. 设置Docker仓库

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  2. 安装Docker CE(社区版)

    sudo yum install docker-ce docker-ce-cli containerd.io
    
  3. 启动Docker并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. 验证Docker安装

    sudo docker run hello-world
    

    如果显示“Hello from Docker!”,则表示Docker安装成功。

步骤三:添加GitLab官方Docker镜像仓库

为了获取最新版本的GitLab,建议添加GitLab的官方Docker镜像仓库:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

步骤四:安装GitLab容器

  1. 创建GitLab配置文件

    创建一个名为gitlab.rb的配置文件,并根据需要进行自定义。例如,修改外部访问的URL和端口:

    sudo nano /etc/gitlab/gitlab.rb
    

    在文件中添加或修改以下内容:

    external_url 'http://your-gitlab-domain.com'
    
    # 如果需要使用HTTPS,请配置SSL证书路径
    # nginx['ssl_certificate'] = "/etc/gitlab/ssl/your_domain_name.crt"
    # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/your_domain_name.key"
    
    # 调整GitLab的内存限制(根据服务器资源调整)
    unicorn['worker_processes'] = 4
    postgresql['shared_buffers'] = "256MB"
    

    保存并退出编辑器。

  2. 重新配置并安装GitLab

    运行以下命令以应用配置并安装GitLab:

    sudo gitlab-ctl reconfigure
    

    这个过程可能需要一些时间,请耐心等待。

步骤五:访问GitLab

  1. 获取初始密码

    安装完成后,可以通过以下命令获取GitLab管理员账户的初始密码:

    sudo cat /var/log/gitlab/initial_root_password
    
  2. 登录GitLab

    打开浏览器,访问http://your-gitlab-domain.com,使用用户名root和之前获取的初始密码登录。

  3. 重置密码

    登录后,建议立即重置管理员密码:

    • 进入Settings(设置) > General(常规)。
    • 找到Administrator(管理员)部分,点击Change password(更改密码)并按照提示操作。

步骤六:配置防火墙(可选)

如果你的服务器启用了防火墙,确保开放HTTP(80)和HTTPS(443)端口:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

步骤七:使用Docker Compose(可选)

虽然上述方法已经足够简单,但你也可以选择使用Docker Compose来管理GitLab容器。以下是基本步骤:

  1. 安装Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  2. 创建docker-compose.yml文件

    sudo nano /etc/gitlab/docker-compose.yml
    

    添加以下内容:

    version: '3'
    
    services:
      gitlab:
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        hostname: 'your-gitlab-domain.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://your-gitlab-domain.com'
            # 其他配置项...
        ports:
          - '80:80'
          - '443:443'
          - '22:22'
        volumes:
          - '/srv/gitlab/config:/etc/gitlab'
          - '/srv/gitlab/logs:/var/log/gitlab'
          - '/srv/gitlab/data:/var/opt/gitlab'
    
  3. 启动GitLab

    sudo docker-compose up -d
    

使用Docker Compose可以更方便地管理多个服务和配置,适合复杂的环境。

总结

通过以上步骤,你可以在CentOS系统上成功通过Docker容器化部署GitLab。这种方法不仅简化了安装过程,还提高了GitLab的可维护性和可扩展性。如果在部署过程中遇到问题,可以参考GitLab官方文档获取更多帮助。

0
看了该问题的人还看了