Files
macos-tools/gitlab/docker-compose.yml
gaoandClaude 2c616faba0 feat: 完成 GitLab macOS 优化部署和 CI/CD 配置
## 主要改进
- 升级 GitLab CE 到 16.11.7 (最新稳定版)
- 优化性能配置 (Puma worker, Sidekiq 并发控制)
- 禁用不必要服务节省资源 (Prometheus/Grafana)
- 配置国内 APT 镜像源加速更新
- 添加时区设置 Asia/Shanghai

## 新增功能
- 一键部署脚本 (init-gitlab-optimized.sh)
- 智能 Runner 注册 (register-runner-optimized.sh)
- 综合维护工具 (maintenance-gitlab.sh)
- SMTP 邮件配置向导 (setup-smtp.sh)
- 密码重置工具 (reset-gitlab-password.sh)
- 快速诊断脚本 (diagnose-gitlab.sh)

## CI/CD 配置
- 注册 Docker Runner (容器化构建)
- 注册 Shell Runner (本地脚本执行)
- 创建 CI/CD 模板文件
- Runner 配置优化和清理

## 文档完善
- 技术文档 (CLAUDE.md)
- 优化部署指南 (OPTIMIZATION_GUIDE.md)
- 使用说明和故障排除指南

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
2025-11-04 11:49:57 +08:00

65 lines
2.0 KiB
YAML

version: "3.8"
services:
gitlab:
image: gitlab/gitlab-ce:16.11.7-ce.0
container_name: gitlab-ce
hostname: gitlab.local
restart: always
shm_size: '2g'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.83:8891'
gitlab_rails['gitlab_shell_ssh_port'] = 8929
nginx['listen_port'] = 80
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 性能优化
puma['worker_processes'] = 2
puma['min_threads'] = 2
puma['max_threads'] = 4
sidekiq['max_concurrency'] = 10
# 禁用不需要的服务节省资源
prometheus_monitoring['enable'] = false
grafana['enable'] = false
alertmanager['enable'] = false
# 邮件配置 (需要 SMTP 设置)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "${SMTP_USER:[email protected]}"
gitlab_rails['smtp_password'] = "${SMTP_PASSWORD:-your-password}"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "${SMTP_USER:[email protected]}"
ports:
- "8891:80" # HTTP Web UI
- "8929:22" # SSH
volumes:
- ./config:/etc/gitlab
- ~/ops/data/gitlab/logs:/var/log/gitlab
- ~/ops/data/gitlab/data:/var/opt/gitlab
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/-/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 300s
# GitLab Runner for CI/CD
gitlab-runner:
image: gitlab/gitlab-runner:latest
container_name: gitlab-runner
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./gitlab-runner-config:/etc/gitlab-runner
depends_on:
- gitlab
networks:
default:
name: gitlab-network