首页主机资讯GitLab在Linux中的容器化部署方案

GitLab在Linux中的容器化部署方案

时间2025-12-05 03:10:04发布访客分类主机资讯浏览1221
导读:Linux 上容器化部署 GitLab 的可落地方案 一 方案总览与选型 单机 Docker:最快速上手,适合测试/小型团队,通过挂载卷实现配置、日志、数据持久化。 Docker Compose:在单机基础上提供编排与可维护性,便于统一管...

Linux 上容器化部署 GitLab 的可落地方案

一 方案总览与选型

  • 单机 Docker:最快速上手,适合测试/小型团队,通过挂载卷实现配置、日志、数据持久化。
  • Docker Compose:在单机基础上提供编排与可维护性,便于统一管理、备份与升级。
  • Kubernetes:面向生产级与高可用,结合 Helm 与 Ingress/cert-manager 实现域名、证书与弹性扩展。

二 单机 Docker 快速部署

  • 准备与拉取镜像
    • 安装并启动 Docker;如需编排可安装 Docker Compose
    • 拉取镜像:docker pull gitlab/gitlab-ce:latest(企业版用 gitlab/gitlab-ee:latest)。
  • 运行容器(示例)
    • 建议将宿主机端口 80/443/22 映射到容器,便于直接使用标准端口;如冲突可改为 8080/8443/2222
    • 命令示例:
      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
      
  • 首次访问与初始密码
    • 浏览器访问:http://服务器IP:8080 或 https://服务器IP:8443
    • 初始 root 密码位于容器内:/etc/gitlab/initial_root_password,文件默认 24 小时内有效,首次登录后请立即修改。

三 Docker Compose 编排部署

  • 目录与持久化
    • 建议目录结构:/data/gitlab/{ config,logs,data} ,分别挂载到容器内 /etc/gitlab/var/log/gitlab/var/opt/gitlab
  • 示例 docker-compose.yml
    version: '3.6'
    services:
      gitlab:
        image: gitlab/gitlab-ce:latest
        container_name: gitlab
        restart: always
        hostname: 'gitlab.example.com'
        environment:
          TZ: 'Asia/Shanghai'
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'https://gitlab.example.com'
            gitlab_rails['gitlab_shell_ssh_port'] = 22
            nginx['redirect_http_to_https'] = true
        ports:
          - '80:80'
          - '443:443'
          - '22:22'
        volumes:
          - /data/gitlab/config:/etc/gitlab
          - /data/gitlab/logs:/var/log/gitlab
          - /data/gitlab/data:/var/opt/gitlab
          - /etc/localtime:/etc/localtime:ro
        shm_size: '256m'
    
  • 启动与常用操作
    • 启动:docker-compose up -d
    • 重新配置:docker exec -it gitlab gitlab-ctl reconfigure
    • 查看日志:docker-compose logs -f
  • 说明
    • 如需使用非标准 SSH 端口,务必在宿主机与容器内一致,并在 GitLab 中设置 gitlab_rails[‘gitlab_shell_ssh_port’]

四 Kubernetes 生产级部署

  • 前置与仓库
    • 准备 Kubernetes 集群与 kubectl/Helm;添加 GitLab Helm 仓库并创建命名空间:
      helm repo add gitlab https://charts.gitlab.io
      helm repo update
      kubectl create namespace gitlab
      
  • 安装与访问
    • 安装:helm install gitlab gitlab/gitlab --namespace gitlab -f values.yaml(可按需定制 values.yaml,如域名、资源、存储等)。
    • 获取外部访问地址:kubectl get svc --namespace gitlab(LoadBalancer/Ingress IP 或域名)。
  • HTTPS 与证书
    • 推荐集成 cert-manager 自动签发 Let’s Encrypt 证书,或预先创建 TLS Secret 并在 Ingress 中引用。
  • 备份与监控
    • 集群级备份可用 Velero;监控建议接入 Prometheus/Grafana

五 关键配置与运维要点

  • 外部访问与 SSH
    • 设置 external_url(HTTP/HTTPS 地址);如 SSH 端口非 22,同步设置 gitlab_rails[‘gitlab_shell_ssh_port’],并确保宿主机端口映射一致。
  • HTTPS 两种常用方式
    • 自动签发:启用 letsencrypt[‘enabled’] = true 并配置联系邮箱,完成域名验证后自动续期。
    • 手动证书:在 /etc/gitlab/ssl/ 放置证书与私钥,并在 nginx 段配置:
      nginx['enable'] = true
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/server_cert.crt"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/private.key"
      
      修改后执行:gitlab-ctl reconfigure 与 gitlab-ctl restart。
  • 资源与健康检查
    • 建议设置容器资源限制(如 CPU/内存),并配置健康检查(示例:/opt/gitlab/bin/gitlab-healthcheck)。
  • 邮件与通知
    • 如需 SMTP,在 gitlab.rb 中配置 smtp_enable/smtp_address/smtp_port/smtp_user_name/smtp_password 等,然后 reconfigure 生效。
  • 备份与恢复
    • 定期备份:/opt/gitlab/bin/gitlab-backup create;恢复:/opt/gitlab/bin/gitlab-backup restore BACKUP=timestamp。
  • 安全与合规
    • 首次登录后立即修改 root 密码;按需关闭用户注册、开启双重认证、限制出站网络容器资源

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


若转载请注明出处: GitLab在Linux中的容器化部署方案
本文地址: https://pptw.com/jishu/764302.html
SQLAdmin在Debian中如何优化性能 Linux系统中FetchLinux的性能瓶颈

游客 回复需填写必要信息