当前位置: 首页 > news >正文

Docker Compose 部署 GitLab

Docker Compose 部署 GitLab(含默认密码+外部Nginx反向代理+禁用SSH)

一套直接可用、无坑、生产环境可用的完整配置,全程不使用 SSH,只走 HTTP/HTTPS,外部 Nginx 反向代理,安装时直接配置默认管理员账号密码。

一、整体架构

  • GitLab 容器:只暴露HTTP(80)端口,完全禁用 SSH
  • 外部 Nginx:负责域名、SSL、反向代理到 GitLab 容器
  • Docker Compose:一键启动 GitLab
  • 预设管理员账号:root/ 你自定义的密码

二、目录结构(提前建好)

mkdir-p/opt/gitlab/{config,logs,data}chmod-R777/opt/gitlab# 避免权限问题

三、docker-compose.yml(核心配置)

version:'3.8'services:gitlab:image:gitlab/gitlab-ce:latestcontainer_name:gitlabrestart:alwayshostname:gitlab.yourdomain.com# 改成你的域名environment:# 外部访问地址(必须是你的最终域名)GITLAB_OMNIBUS_CONFIG:|external_url 'http://gitlab.yourdomain.com'# ======================# 禁用 SSH 功能# ======================gitlab_rails['gitlab_shell_ssh_port']= nil sshd['enable']= false# ======================# 配置默认管理员密码# ======================gitlab_rails['initial_root_password']= 'YourStrongPassword123!'# ======================# 关闭容器自带 Nginx(使用外部 Nginx)# ======================nginx['enable']= false puma['enable']= true puma['listen']= '0.0.0.0' puma['port']= 80# 信任外部 Nginx 反向代理gitlab_rails['trusted_proxies']=['127.0.0.1','172.16.0.0/12','192.168.0.0/16']ports:-"127.0.0.1:8929:80"# 只监听本地,外部 Nginx 反代,不直接暴露公网volumes:-/opt/gitlab/config:/etc/gitlab-/opt/gitlab/logs:/var/log/gitlab-/opt/gitlab/data:/var/opt/gitlabshm_size:'256m'

关键配置说明

  1. 禁用 SSH

    • sshd['enable'] = false关闭容器内 SSH 服务
    • gitlab_shell_ssh_port = nil取消 SSH 克隆展示
    • 页面完全不显示 SSH 克隆地址
  2. 默认 root 密码

    • initial_root_password第一次启动自动设置
    • 只在首次初始化生效
  3. 关闭容器内 Nginx

    • nginx['enable'] = false
    • 使用外部独立 Nginx 代理,更灵活
  4. 端口安全

    • 只绑定本地127.0.0.1:8929
    • 公网无法直接访问,必须走 Nginx

四、启动 GitLab

cd/opt/gitlabdockercompose up-d

启动时间约 2~5 分钟,查看状态:

dockercompose logs-fgitlab

看到gitlab Reconfigured!就是启动完成。


五、外部 Nginx 反向代理配置

创建 Nginx 配置文件

/etc/nginx/conf.d/gitlab.conf

server { listen 80; server_name gitlab.yourdomain.com; # 强制跳转 HTTPS(可选,推荐) return 301 https://$host$request_uri; } server { listen 443 ssl; server_name gitlab.yourdomain.com; # SSL 证书(改成你自己的路径) ssl_certificate /etc/nginx/ssl/gitlab.crt; ssl_certificate_key /etc/nginx/ssl/gitlab.key; # SSL 优化 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256; # 反向代理到 GitLab location / { proxy_pass http://127.0.0.1:8929; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 3600; } # GitLab 大文件上传限制 client_max_body_size 1024m; proxy_request_buffering off; }

重载 Nginx

nginx-tsystemctl reload nginx

六、登录使用

  • 访问地址:https://gitlab.yourdomain.com
  • 用户名root
  • 密码:你在docker-compose.yml里设置的initial_root_password

七、常用维护命令

# 重启 GitLabdockercompose restart gitlab# 停止 GitLabdockercompose down# 查看日志dockercompose logs-f--tail=200gitlab# 修改配置后重新加载dockercompose up-d

八、注意事项

  1. 首次启动慢是正常的,GitLab 组件很多
  2. 服务器内存建议≥ 4GB,否则会卡顿
  3. 密码必须复杂度足够,否则初始化失败
  4. 全程无 SSH、无 22 端口、完全走 HTTP/HTTPS

总结

  1. 一键docker-compose up -d即可部署
  2. 内置默认 root 密码,无需找自动生成密码
  3. 禁用 SSH,只走 HTTP/HTTPS
  4. 使用外部 Nginx代理,安全、灵活、易维护
  5. 端口只监听本地,公网无法直接访问,更安全

需要我帮你生成无 SSL 版本(纯 HTTP)、或自动申请 Let’s Encrypt 证书的脚本吗?

http://www.jsqmd.com/news/533654/

相关文章:

  • 千问网页版生成的代码不支持语法高亮
  • StructBERT-Large效果展示:古汉语白话文复述识别能力实测
  • 农村自建房包工包料价格背后:2026年如何筛选承包方与规避成本陷阱 - 速递信息
  • TPAMI 2026 | 中科大重磅提出贝叶斯窗口 Transformer:图像复原的 Transformer 新范式
  • 农村自建房一平米造价怎么算?2026年主要成本项与优化策略参考 - 速递信息
  • 除螨喷雾剂是智商税还是真的有用?仙贝宁99.9%除螨率实测,2026公认好用的除螨喷雾剂排名 - 博客万
  • 公开课 | Ai自动化智能体与工作流平台
  • Python实战:用遗传算法(GA)优化车间调度(JSP)的完整流程解析
  • 检查采集程序心跳的程序挂了。看来得套娃,再来一个检测检测程序的程序
  • 2026年卷管直销厂家哪家好,带刺土钉钢管/逃生管道卷管/钢板卷圆/进口耐磨板/装甲钢板/注浆管棚管,卷管厂家口碑推荐 - 品牌推荐师
  • Node.js环境快速集成SenseVoice-Small语音识别服务
  • 开源音频工具Equalizer APO:打造专业级音效定制体验
  • 【数据集】中国高分辨率国家土壤信息格网基本属性数据集(2010-2018)
  • 2026软文发稿平台实测榜单:软盟稳居榜首 - 新闻快传
  • 企业官网流量高转化低?从技术与产品设计角度解析官网没有询盘的三大痛点
  • 3步掌握专业神经网络可视化:告别手绘尴尬,用代码生成高质量架构图
  • 别再瞎设了!HFSS/CST仿真中S参数端口阻抗到底怎么选?50Ω还是75Ω?
  • 股票行情 API 实操全攻略:选型 + 代码 + 避坑,亲测有效
  • 2026年农村自建房防水材料核心痛点与系统解决方案观察 - 速递信息
  • ModuleMore Sumo V2机器人控制库深度解析与工程实践
  • 别再死记硬背命令了!用Docker Compose 5分钟搞定Kafka单机开发环境
  • 组件通信-作用域插槽
  • 从 OpenClaw 的安全危机到 DefenseClaw:构建 AI Agent 的治理层
  • 找工作哪个平台好?2026靠谱无坑招聘平台热搜推荐 - 博客万
  • 开源镜像即战力:BERT中文文本分割模型在新闻聚合平台的内容结构化落地
  • SEO_如何通过内容优化显著改善SEO效果(123 )
  • 2026年QPQ生产线厂家怎么选?五大核心维度与一家综合服务商深度解析 - 速递信息
  • 麒麟系统字体兼容性实战:Python一键转换Windows宋体TTC为TTF(附完整GUI工具)
  • 【C++实现】快速排序(递归+非递归+链表+TopK)从原理到源码详解
  • 人工胰岛植入术成功:糖尿病患者无需再注射胰岛素