首页主机资讯GitLab如何在Linux上进行容器化部署

GitLab如何在Linux上进行容器化部署

时间2025-11-17 15:45:04发布访客分类主机资讯浏览644
导读:Linux 上容器化部署 GitLab 实操指南 一 环境准备与目录规划 安装 Docker(以 Ubuntu/Debian 为例): 更新索引并安装依赖:sudo apt-get update && sudo apt-...

Linux 上容器化部署 GitLab 实操指南

一 环境准备与目录规划

  • 安装 Docker(以 Ubuntu/Debian 为例):
    • 更新索引并安装依赖:sudo apt-get update & & sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    • 添加 Docker 官方 GPG 与仓库,安装 Docker CE:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -;sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”;sudo apt-get update & & sudo apt-get install -y docker-ce
    • 启动并设置开机自启:sudo systemctl start docker & & sudo systemctl enable docker
  • 安装 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
  • 创建持久化目录(示例):sudo mkdir -p /srv/gitlab/{ config,logs,data} (权限建议:chown -R 998:998 /srv/gitlab,容器内 GitLab 以 998 用户运行)

二 部署方式

  • 方式一 Docker Compose(推荐)
    • 新建 docker-compose.yml(示例映射为 5480:80、5443:443、5022:22,便于与宿主机已有服务共存):
      version: '3.6'
      services:
        gitlab:
          image: gitlab/gitlab-ce:latest
          container_name: gitlab
          restart: always
          hostname: 'gitlab.example.com'
          environment:
            GITLAB_OMNIBUS_CONFIG: |
              external_url 'http://gitlab.example.com:5480'
              gitlab_rails['gitlab_shell_ssh_port'] = 5022
              gitlab_rails['time_zone'] = 'Asia/Shanghai'
          ports:
            - '5480:80'
            - '5443:443'
            - '5022:22'
          volumes:
            - '/srv/gitlab/config:/etc/gitlab'
            - '/srv/gitlab/logs:/var/log/gitlab'
            - '/srv/gitlab/data:/var/opt/gitlab'
          shm_size: '256m'
      
    • 启动:docker-compose up -d
  • 方式二 docker run
    • 启动容器(示例映射为 8080:80、8443:443、2222:22):
      docker run -d \
        --hostname gitlab.example.com \
        -p 8443:443 -p 8080:80 -p 2222:22 \
        --name gitlab \
        --restart always \
        -v /srv/gitlab/config:/etc/gitlab \
        -v /srv/gitlab/logs:/var/log/gitlab \
        -v /srv/gitlab/data:/var/opt/gitlab \
        gitlab/gitlab-ce:latest
      
  • 首次登录与初始密码
    • 等待数分钟初始化后,获取初始 root 密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password
    • 访问:http://服务器IP:5480 或 https://服务器IP:5443,使用 root 与初始密码登录并设置新密码

三 关键配置

  • 外部访问地址与端口
    • 编辑宿主机挂载的配置文件:/srv/gitlab/config/gitlab.rb,设置:external_url ‘http://gitlab.example.com:5480’(若使用 HTTPS 则为 https://…)
    • 如 SSH 端口改为 5022,需同步设置:gitlab_rails[‘gitlab_shell_ssh_port’] = 5022
    • 应用配置:docker exec -it gitlab gitlab-ctl reconfigure
  • HTTPS 与证书
    • 方式 A 内置 Let’s Encrypt(推荐)
      • 在 gitlab.rb 中启用:
        external_url 'https://gitlab.example.com'
        letsencrypt['enabled'] = true
        letsencrypt['contact_emails'] = ['admin@example.com']
        
      • 执行:gitlab-ctl reconfigure(将自动申请并续期证书)
    • 方式 B 手动证书(已有证书)
      • 将证书放入容器内目录(如 /etc/gitlab/ssl/),并在 gitlab.rb 中配置:
        external_url 'https://gitlab.example.com'
        nginx['enable'] = true
        nginx['redirect_http_to_https'] = true
        nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
        nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
        
      • 执行:gitlab-ctl reconfigure & & gitlab-ctl restart
  • 常见调优项
    • 时区:gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’
    • 上传大小:nginx[‘client_max_body_size’] = ‘250m’
    • 内存与共享内存:建议为容器设置 --shm-size=256m 或更高(Compose 中 shm_size: ‘256m’)

四 运维与安全要点

  • 防火墙放行:确保放行对应端口(示例为 80/443/22 或自定义的 5480/5443/5022
    • firewalld:firewall-cmd --add-port=80/tcp --permanent & & firewall-cmd --add-port=443/tcp --permanent & & firewall-cmd --add-port=22/tcp --permanent & & firewall-cmd --reload
  • 备份与恢复
    • 备份:docker exec -it gitlab gitlab-backup create(备份文件位于 /var/opt/gitlab/backups,宿主机挂载路径为 /srv/gitlab/data/backups)
    • 恢复:将备份文件放入上述目录后执行:docker exec -it gitlab gitlab-backup restore BACKUP=timestamp
  • 升级与迁移
    • 升级:修改 docker-compose.yml 中镜像版本(如从 15.015.11),执行 docker-compose pull & & docker-compose up -d;或先备份再重建容器
    • 迁移:拷贝整个 /srv/gitlab 目录到新主机,保持目录结构与权限一致后启动容器即可
  • 安全建议
    • 修改默认管理员密码、限制注册、开启 2FA、定期更新镜像与系统、仅暴露必要端口、证书与密钥妥善管控

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


若转载请注明出处: GitLab如何在Linux上进行容器化部署
本文地址: https://pptw.com/jishu/749017.html
Linux环境下如何解决GitLab冲突 在Linux上使用GitLab有哪些优势

游客 回复需填写必要信息