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

发布于:2025-03-26 ⋅ 阅读:(9) ⋅ 点赞:(0)

一、环境准备

  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:80143
  2. 服务启动慢

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

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

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


网站公告

今日签到

点亮在社区的每一天
去签到