当前位置: 首页 > article >正文

CI/CD(七) docker-compose部署gitlab-ce

一、环境准备

  1. 创建目录结构
    mkdir -p /docker/software/gitlab/{data,logs,config}
    cd /docker/software/gitlab
    

二、编写 docker-compose.yml

version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest  # 社区版镜像
    container_name: gitlab
    restart: unless-stopped
    hostname: 'gitlab.example.com'  # 替换为实际域名或IP
    environment:
      TZ: Asia/Shanghai  # 时区设置
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com:8929'  # 外部访问地址
        gitlab_rails['gitlab_shell_ssh_port'] = 2224   # SSH端口
        # 可选配置:邮箱、数据库等
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "smtp.example.com"
        gitlab_rails['smtp_port'] = 465
    ports:
      - "8929:8929"    # HTTP端口(与external_url一致)
      - "443:443"      # HTTPS端口
      - "2224:22"      # SSH端口映射
    volumes:
      - ./config:/etc/gitlab      # 配置文件
      - ./logs:/var/log/gitlab    # 日志文件
      - ./data:/var/opt/gitlab    # 数据文件
    shm_size: '256m'  # 共享内存大小

关键配置说明316144:

  • external_url:GitLab 访问地址,需与端口映射一致。
  • gitlab_shell_ssh_port:自定义 SSH 端口,避免与宿主机冲突。
  • 卷映射(volumes):持久化配置、日志和数据,防止容器重启后丢失。

三、启动 GitLab 服务

  1. 启动容器
    docker-compose up -d
    
  2. 查看启动状态
    docker-compose logs -f gitlab  # 实时查看日志
    docker-compose ps             # 确认容器状态为 Healthy
    

四、访问与初始化

  1. 首次访问

    • 浏览器输入 http://gitlab.example.com:8929,等待服务完全启动(初次可能需 5-10 分钟)3。
    • 若出现 502 错误,刷新页面或稍后重试3。
  2. 设置管理员密码

    • 默认用户名:root
    • 初始密码文件路径(24 小时后自动删除):
      docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
      
  3. 登录与配置

    • 登录后建议修改密码并配置邮箱、SSH 密钥等41。
    • 若需中文界面:用户设置 → Preferences → Language → 简体中文36。

五、高级配置(可选)

  1. HTTPS 支持
    修改 external_urlhttps,并在 GITLAB_OMNIBUS_CONFIG 中添加 SSL 证书路径:

    external_url 'https://gitlab.example.com'
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
    

    将证书文件挂载到容器内 /etc/gitlab/ssl 目录148。

  2. 备份与恢复

    • 手动备份
      docker exec -it gitlab gitlab-backup create
      
    • 定时备份:通过 Crontab 或脚本自动化35。
  3. 性能优化

    • 调整 unicornsidekiq 参数(如并发数、内存限制)148:
      GITLAB_OMNIBUS_CONFIG: |
        unicorn['worker_processes'] = 4
        sidekiq['concurrency'] = 10
      

六、常见问题

  1. 端口冲突

    • 若宿主机 80/443 端口被占用,需修改 ports 映射(如 8080:80)143。
  2. 服务启动慢

    • 首次启动需初始化数据库和组件,耐心等待或通过日志排查问题3。
  3. 数据迁移

    • 迁移时需复制 configdatalogs 目录,并确保权限正确16。

其他安装地址:https://zhuanlan.zhihu.com/p/680598666

原文地址:https://blog.csdn.net/qq_41369135/article/details/146499258
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/610405.html

相关文章:

  • 熔断降级(Sentinel解决)
  • 协议学习——1 NCDSSB
  • 【网络通信安全】基于华为 eNSP 的链路聚合、手工负载分担模式与 LACP 扩展配置 全解析
  • 如何入门 Postman?快速了解其功能与用途
  • 7-1 统计字符串中每个字符出现的次数
  • 万亿级数据量的OceanBase应用从JVM到协议栈立体化改造实现性能调优
  • SQL注入简介
  • shelljs:理解ShellJS / 安装引入 / 常见方法 / 优势 / 应用场景
  • 习题4-9 打印菱形图案
  • 护网中的应急响应(奇安信蓝中面试)
  • CNN基础考点
  • 【数据库】SQL语言:SELECT语句的练习(例题)
  • Hadoop/Spark 生态
  • websocket结合promise的通信协议
  • LinkedIn数据抓取零风险指南:亮数据住宅代理实现企业级合规采集
  • 医学交互作用分析步骤和目的(R语言)
  • 我的世界1.20.1forge模组进阶开发教程——结构(3)
  • Pytorch学习笔记(七)Learn the Basics - Optimizing Model Parameters
  • Redis 存储 String高亮显示JSON,存储 JSON 的标准工具方法
  • 华为OD机试A卷 - 积木最远距离(C++ Java JavaScript Python )