如何使用docker-compose安装gitlab

发布时间:2021-07-10 11:34:38 作者:chen
来源:亿速云 阅读:733
# 如何使用docker-compose安装GitLab

## 前言

GitLab 是一个功能强大的开源代码托管平台,提供了完整的 DevOps 工具链。使用 Docker Compose 部署 GitLab 可以快速搭建一套完整的开发环境,同时保持系统的隔离性和可移植性。本文将详细介绍如何使用 docker-compose 安装和配置 GitLab。

## 环境准备

### 系统要求
- Linux 服务器(推荐 Ubuntu 20.04+/CentOS 7+)
- Docker 20.10.0+
- Docker Compose 1.29.0+
- 至少 4GB 内存(生产环境建议 8GB+)
- 至少 2CPU 核心

### 安装依赖
```bash
# 安装Docker
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker

# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

创建docker-compose.yml文件

在项目目录中创建 docker-compose.yml 文件:

version: '3.6'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    hostname: 'gitlab.example.com'  # 修改为你的域名
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'  # 修改为你的域名
        # 邮件配置示例
        gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "smtp.example.com"
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = "username"
        gitlab_rails['smtp_password'] = "password"
        gitlab_rails['smtp_domain'] = "example.com"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = false
    ports:
      - "80:80"
      - "443:443"
      - "22:22"
    volumes:
      - ./gitlab/config:/etc/gitlab
      - ./gitlab/logs:/var/log/gitlab
      - ./gitlab/data:/var/opt/gitlab
    restart: always
    networks:
      - gitlab_net

networks:
  gitlab_net:
    driver: bridge

配置说明

关键配置项

  1. 镜像选择

    • gitlab/gitlab-ce:latest - 社区版(推荐)
    • gitlab/gitlab-ee:latest - 企业版(需许可证)
  2. 端口映射

    • 80: HTTP访问端口
    • 443: HTTPS访问端口
    • 22: SSH克隆端口(注意避免与宿主机SSH冲突)
  3. 数据卷

    • /etc/gitlab: 配置文件
    • /var/log/gitlab: 日志文件
    • /var/opt/gitlab: 应用数据

高级配置

environment:
  GITLAB_OMNIBUS_CONFIG: |
    # 禁用用户注册
    gitlab_rails['gitlab_signup_enabled'] = false
    
    # 配置备份
    gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
    gitlab_rails['backup_keep_time'] = 604800  # 保留7天
    
    # 性能优化
    unicorn['worker_processes'] = 4
    postgresql['shared_buffers'] = "256MB"

启动GitLab服务

# 启动服务(后台运行)
docker-compose up -d

# 查看日志
docker-compose logs -f gitlab

首次启动可能需要5-10分钟完成初始化,可以通过以下命令检查状态:

docker exec -it gitlab gitlab-ctl status

初始设置

  1. 访问 http://your-server-ip(或配置的域名)
  2. 首次访问会要求设置root密码(至少8位)
  3. 登录后进入管理控制台

重要配置路径

备份与恢复

创建备份

docker exec -it gitlab gitlab-backup create

恢复备份

# 停止相关服务
docker exec -it gitlab gitlab-ctl stop unicorn
docker exec -it gitlab gitlab-ctl stop sidekiq

# 恢复备份(将BACKUP_TIMESTAMP替换为实际时间戳)
docker exec -it gitlab gitlab-backup restore BACKUP=BACKUP_TIMESTAMP

# 重启服务
docker exec -it gitlab gitlab-ctl restart

日常维护

升级版本

# 停止并删除旧容器
docker-compose down

# 拉取新镜像
docker-compose pull

# 重新启动
docker-compose up -d

清理无用数据

# 清理Docker系统
docker system prune

# 清理GitLab缓存
docker exec -it gitlab gitlab-rake cache:clear

常见问题解决

1. 502错误

通常是由于服务未完全启动,等待几分钟后刷新或检查日志:

docker-compose logs gitlab | grep -i error

2. 内存不足

修改docker-compose.yml添加资源限制:

deploy:
  resources:
    limits:
      memory: 8G

3. 邮件配置测试

docker exec -it gitlab gitlab-rails console
> Notify.test_email('test@example.com', 'Test', 'Test Body').deliver_now

安全建议

  1. 启用HTTPS

    • gitlab.rb 中配置 Let’s Encrypt
    letsencrypt['enable'] = true
    letsencrypt['contact_emails'] = ['admin@example.com']
    
  2. 定期备份

    # 每周自动备份
    0 2 * * 0 docker exec gitlab gitlab-backup create
    
  3. 更新策略

    • 每月检查并更新GitLab版本
    • 订阅GitLab安全公告

总结

通过Docker Compose部署GitLab具有以下优势: - 快速部署和升级 - 环境隔离,避免污染主机 - 方便备份和迁移 - 灵活的资源配置

本文介绍了从基础安装到高级配置的全过程,您可以根据实际需求调整配置参数。对于生产环境,建议: 1. 使用专用数据卷 2. 配置监控和告警 3. 实施定期维护计划

附录

常用命令参考

命令 说明
docker-compose ps 查看服务状态
docker-compose restart gitlab 重启GitLab
docker exec -it gitlab bash 进入容器
docker exec gitlab gitlab-ctl reconfigure 重新加载配置

参考资源

”`

推荐阅读:
  1. Gitlab的安装及基本使用(一)
  2. docker 安装gitlab

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker gitlab

上一篇:Python3.8新功能有哪些

下一篇:django2如何使用iframe标签完成网页内嵌播放b站视频功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》