登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
docker-compose部署gitlab
docker-compose部署gitlab
[ 复制链接 ]
姥恫
2025-9-28 18:35:43
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
一、gitlab介绍
GitLab是一个开源的、基于Git的版本控制系统。
1. 核心功能
代码托管
gitlab允许用户创建项目,并将代码存储在这些项目中,方便用户上传和下载代码,并支持多种编程语言,无论是个人开发者的小型项目,还是团队协作的大型软件项目,都可以使用gitlab来托管代码。
版本控制
gitlab可以记录代码的每一次更改,用户可以查看提交历史来了解代码的演变过程。
持续集成/持续部署(CI/CD)
gitlab通过CI/CD管道实现自动化构建、测试和部署。当开发正推送代码后,gitlab会自动触发构建和测试流程,测试通过后可以进行部署,可以提高开发效率。
项目管理
gitlab项目管理工具,支持创建任务、分配任务、跟踪任务进度,并可以设置里程碑,帮助团队有效管理项目进度和任务分配。
代码审查
开发可以通过合并请求提交代码更改,团队其他成员可以对代码进行审查、评论和批准,有助于提高代码质量。
安全功能
gitlab提供代码扫描功能,可以检测代码中的安全漏洞,并支持访问控制,设置不同用户或用户组对项目的访问权限。
2. 适用场景
软件开发团队
企业内部项目管理
开源社区项目
个人开发者
教育机构
小型团队和初创公司
二、gitlab部署
以下是gitlab-18.2.4-ce部署
1. 环境准备
安装docker和docker-compose
服务器配置最好 2核 4G 以上
2. 部署gitlab
2.1 创建目录
mkdir -p /data/gitlab/config
mkdir -p /data/gitlab/logs
mkdir -p /data/gitlab/data
复制代码
2.2 编写docker-compose.yml文件
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:18.2.4-ce.0
container_name: gitlab
restart: always
hostname: gitlab.example.com
ports:
- "8080:80" # 给 Nginx 代理
- "8443:443" # 如果想用 GitLab 自带 https,可选
- "2222:22" # ssh 克隆用
volumes:
- /data/gitlab/config:/etc/gitlab
- /data/gitlab/logs:/var/log/gitlab
- /data/gitlab/data:/var/opt/gitlab
复制代码
2.3 启动gitlab容器
docker-compose up -d
复制代码
3. 调整gitLab 内部配置
vim /data/gitlab/config/gitlab.rb (容器内部是/etc/gitlab/gitlab.rb)
#指定域名
#注意:为什么这里不写https//gitlab.example.com,如果写了https,gitLab内置nginx和外层nginx冲突,gitLab内部nginx会尝试启用443,而外层Nginx也在管443,结果请求来回绕,容易访问502。
external_url 'http://gitlab.example.com'
# 如果 ssh 用 2222 端口,需要加上:
gitlab_rails['gitlab_shell_ssh_port'] = 2222
#因为用了Nginx 反向代理,那就 关闭 GitLab 的内置证书申请
letsencrypt['enable'] = false
复制代码
更改完之后重载配置
docker exec -it gitlab gitlab-ctl reconfigure
复制代码
4. gitlab其他操作
#杀掉进程(如果出现执行重载配置是卡住可选择操作)
docker exec -it gitlab pkill -9 -f "cinc-client"
docker exec -it gitlab gitlab-ctl reconfigure
#查看组件是否正常(各个组件显示run就说明ok)
docker exec -it gitlab gitlab-ctl status
#GitLab 在 容器第一次初始化时,会生成一个随机的 root 密码,默认的登录方式是:
用户名:root
密码:保存在容器挂载的配置目录里(/etc/gitlab/initial_root_password)
#查看宿主机挂载位置
cat /data/gitlab/config/initial_root_password
#会有类似输出(!!!如果更改过root密码就不会更新这个文件了)
# WARNING: This value is valid only in the following conditions
# ...
Password: AbCdEfGhIjKlMnOpQrSt
# ...
#如果密码忘记,可以进入容器里重置
docker exec -it gitlab gitlab-rails console -e production
#在控制台输入
user = User.find_by_username('root')
user.password = '你的新密码'
user.password_confirmation = '你的新密码'
user.save!
复制代码
三、配置nginx反向代理
1. 安装nginx
#拉取nginx镜像
docker pull nginx:1.26.2
#创建持久化目录
mkdir -p /data/nginx/cert
mkdir -p /data/nginx/conf/conf.d
mkdir -p /data/nginx/html
mkdir -p /data/nginx/logs
复制代码
2. 创建nginx配置文件
创建基础配置文件nginx.conf
vim /data/nginx/conf/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
client_max_body_size 200m;
client_body_timeout 300;
include /etc/nginx/conf.d/*.conf;
}
复制代码
创建gitlab代理nginx配置文件
server {
listen 80;
server_name gitlab.example.com; # 替换为你的域名
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name gitlab.example.com; # 替换为你的域名
ssl_session_timeout 30m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/cert/certificate.pem; # 替换为你的 SSL 证书路径
ssl_certificate_key /etc/nginx/cert/private.key; # 替换为你的 SSL 私钥路径
ssl_session_cache shared:SSL:10m;
location / {
client_max_body_size 256m;
proxy_pass http://localhost:8080; # 替换为 GitLab 容器的 IP 或域名
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_intercept_errors on;
}
# GitLab WebSocket 支持(例如 CI/CD 终端)
location /-/ {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
复制代码
3. 重启nginx
systemctl restart nginx
复制代码
4.访问gitlab
https://gitlab.example.com #访问你自己的域名
复制代码
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/zhaohaiqi/p/19062035
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
docker
compose
部署
gitlab
相关帖子
GitLab Merge Request + SonarQube:构建可量化的 .NET Core 代码评审体系
麒麟系统离线安装docker和docker-compose
Android开发 Jetpack_Compose 申请动态权限
MySQL主从复制:原理、部署、运维与选型全指南
实物部署【Switching Sampling Space of Model Predictive Path-Integral Controller
docker-compse部署docker容器示例
Flask 应用部署实战:Nginx 反向代理配置指南
SeaTunnel(2.3.12)部署及其Demo(含CDC实时采集demo)
一键部署!一款开源自托管的照片画廊神器!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
GitLab Merge Request + SonarQube:构建可量化的 .NET Core 代码评审体系
0
19
站竣凰
2025-11-26
业界
麒麟系统离线安装docker和docker-compose
1
82
后雪闵
2025-11-27
安全
Android开发 Jetpack_Compose 申请动态权限
0
858
殳世英
2025-11-28
业界
MySQL主从复制:原理、部署、运维与选型全指南
1
331
尚腱埂
2025-11-28
业界
实物部署【Switching Sampling Space of Model Predictive Path-Integral Controller
1
1024
唯棉坜
2025-11-29
安全
docker-compse部署docker容器示例
1
404
乐敬
2025-12-01
业界
Flask 应用部署实战:Nginx 反向代理配置指南
1
920
盒礁泅
2025-12-11
业界
SeaTunnel(2.3.12)部署及其Demo(含CDC实时采集demo)
1
621
溧久苟
2025-12-11
安全
一键部署!一款开源自托管的照片画廊神器!
0
264
莅耸
2025-12-12
回复
(2)
梦霉
2025-11-20 17:43:13
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
热心回复!
打阗渖
前天 12:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
热心回复!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
姥恫
前天 12:15
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991123
4
xiangqian
638210
5
韶又彤
9998
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
828
NCHU-数字电路模拟程序-23207332
229
LaTeX学习笔记:学术文档排版
210
昆明黄金店推荐:如何甄选“价值平权”的黄
932
微信支付集成_JSAPI
879
【AI编程】5分钟用AI复刻有BOSS战的《坦克
622
紧跟材料趋势,深耕专业工艺:上海芮生建设
658
FFmpeg开发笔记(九十四)基于Kotlin的国产
740
昆明旅游打卡必去:逛南亚风情园,别错过廖
878
大厂生存启示录:从“螺丝钉”到“金牌个人
212
AI编程工具策略
263
self introduction
49
白嫖最新ChatGPT和主流AI大模型,国内无限
64
Java关键字解析之volatile:可见性的守护者
701
PHP 8.6 即将支持部分函数应用
562
FFmpeg开发笔记(九十三)国产的Android开
196
FFmpeg开发笔记(九十三)国产的Android开
941
【EF Core】“Code First”方案下以编程方
483
[数据结构/Java] 数据结构之循环队列
466
理解整数在计算机中的表示
211
北京上门收画服务权威推荐榜单