# 如何使用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
文件:
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
镜像选择:
gitlab/gitlab-ce:latest
- 社区版(推荐)gitlab/gitlab-ee:latest
- 企业版(需许可证)端口映射:
数据卷:
/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"
# 启动服务(后台运行) docker-compose up -d # 查看日志 docker-compose logs -f gitlab
首次启动可能需要5-10分钟完成初始化,可以通过以下命令检查状态:
docker exec -it gitlab gitlab-ctl status
http://your-server-ip
(或配置的域名)./gitlab/config/gitlab.rb
./gitlab/data
./gitlab/logs
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
通常是由于服务未完全启动,等待几分钟后刷新或检查日志:
docker-compose logs gitlab | grep -i error
修改docker-compose.yml添加资源限制:
deploy: resources: limits: memory: 8G
docker exec -it gitlab gitlab-rails console > Notify.test_email('test@example.com', 'Test', 'Test Body').deliver_now
启用HTTPS:
gitlab.rb
中配置 Let’s Encryptletsencrypt['enable'] = true letsencrypt['contact_emails'] = ['admin@example.com']
定期备份:
# 每周自动备份 0 2 * * 0 docker exec gitlab gitlab-backup create
更新策略:
通过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 | 重新加载配置 |
”`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。