## 主要改进 - 升级 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]>
65 lines
2.0 KiB
YAML
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 |