首页主机资讯CentOS上GitLab的容器化部署如何操作

CentOS上GitLab的容器化部署如何操作

时间2025-10-09 14:45:03发布访客分类主机资讯浏览895
导读:CentOS上GitLab容器化部署操作指南 一、准备工作 系统要求:确保CentOS系统为7或更高版本(推荐CentOS 8+),已更新至最新状态(sudo yum update -y)。 Docker安装: 添加Docker官方YU...

CentOS上GitLab容器化部署操作指南

一、准备工作

  1. 系统要求:确保CentOS系统为7或更高版本(推荐CentOS 8+),已更新至最新状态(sudo yum update -y)。
  2. Docker安装
    • 添加Docker官方YUM仓库:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • 安装Docker CE:sudo yum install -y docker-ce docker-ce-cli containerd.io
    • 启动并设置开机自启:sudo systemctl start docker & & sudo systemctl enable docker
  3. 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
    • 验证安装:docker-compose --version

二、部署GitLab容器

方式一:使用Docker Compose(推荐)

  1. 创建数据目录
    在宿主机上创建用于持久化存储GitLab配置、日志和数据的目录:
    sudo mkdir -p /data/gitlab/{ config,logs,data}
  2. 编写docker-compose.yml文件
    /data/gitlab目录下创建docker-compose.yml,内容如下(根据实际情况调整端口和域名):
    version: '3.7'
    services:
      gitlab:
        image: 'gitlab/gitlab-ce:latest'
        container_name: gitlab
        restart: always
        hostname: 'gitlab.example.com'  # 替换为你的域名或IP
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://gitlab.example.com'  # 替换为实际访问地址
        ports:
          - '80:80'    # HTTP
          - '443:443'  # HTTPS(需配置SSL)
          - '22:22'    # SSH
        volumes:
          - '/data/gitlab/config:/etc/gitlab'
          - '/data/gitlab/logs:/var/log/gitlab'
          - '/data/gitlab/data:/var/opt/gitlab'
    
  3. 启动容器
    进入/data/gitlab目录,执行sudo docker-compose up -d,等待容器启动完成(可通过docker-compose logs -f查看实时日志)。

方式二:直接使用Docker命令

  1. 拉取镜像
    从Docker Hub拉取最新版GitLab CE镜像:docker pull gitlab/gitlab-ce:latest
  2. 运行容器
    执行以下命令启动容器(端口和目录可根据需求调整):
    docker run -d \
      --hostname gitlab.example.com \  # 替换为你的域名或IP
      --name gitlab \
      --restart always \
      -p 80:80 -p 443:443 -p 22:22 \  # 映射端口
      -v /data/gitlab/config:/etc/gitlab \  # 配置文件卷
      -v /data/gitlab/logs:/var/log/gitlab \  # 日志卷
      -v /data/gitlab/data:/var/opt/gitlab \  # 数据卷
      gitlab/gitlab-ce:latest
    

    注:--restart always确保容器异常退出时自动重启;-v实现数据持久化,避免容器删除后数据丢失。

三、访问与初始化配置

  1. 访问GitLab
    打开浏览器,输入http://< 服务器IP或域名> (如http://192.168.1.100),进入GitLab登录页面。
  2. 设置管理员密码
    首次访问需设置root用户的初始密码(密码复杂度要求:至少8位,包含大小写字母、数字和特殊字符)。
  3. 登录GitLab
    使用root账号和设置的密码登录,进入GitLab主界面。

四、后续配置(可选但重要)

  1. 配置HTTPS
    使用Let’s Encrypt免费获取SSL证书,提升访问安全性:
    • 安装Certbot:sudo yum install -y certbot python3-certbot-nginx
    • 获取证书:sudo certbot --nginx -d gitlab.example.com(替换为你的域名),按提示完成配置。
    • 重启GitLab容器使配置生效:docker-compose restart(或docker restart gitlab)。
  2. 修改默认端口
    若服务器80/443端口被占用,可修改docker-compose.yml中的端口映射(如将80映射到8080):
    ports:
      - '8080:80'  # 将宿主机8080映射到容器80
    
    修改后重启容器:docker-compose up -d,访问时使用http://< 服务器IP或域名> :8080
  3. 配置邮件服务
    若需通过邮件发送通知(如密码重置),编辑/data/gitlab/config/gitlab.rb文件,添加以下配置(以QQ邮箱为例):
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "your_qq@qq.com"  # 替换为你的QQ邮箱
    gitlab_rails['smtp_password'] = "your_smtp_code"  # 替换为QQ邮箱SMTP授权码
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false
    gitlab_rails['gitlab_email_from'] = "your_qq@qq.com"  # 发件人邮箱
    gitlab_rails['gitlab_email_domain'] = "qq.com"      # 发件人域名
    
    保存后重新配置GitLab:docker-compose exec gitlab gitlab-ctl reconfigure,重启容器使配置生效。

五、注意事项

  1. 数据持久化:务必通过-v参数挂载配置、日志和数据目录到宿主机,避免容器删除后数据丢失。
  2. 资源分配:GitLab对资源要求较高,建议分配至少2核CPU、4GB内存(生产环境建议4核+8GB以上)。
  3. 端口冲突:若宿主机已有服务占用GitLab所需端口(80、443、22),需修改docker-compose.yml中的端口映射(如将80映射到8080)。
  4. 安全加固:生产环境中建议启用HTTPS、配置防火墙(开放必要端口)、定期更新GitLab镜像至最新版本。

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


若转载请注明出处: CentOS上GitLab的容器化部署如何操作
本文地址: https://pptw.com/jishu/721390.html
CentOS上GitLab的性能瓶颈如何突破 CentOS上GitLab的镜像仓库如何使用

游客 回复需填写必要信息