登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
docker-compose部署gitlab
docker-compose部署gitlab
[ 复制链接 ]
姥恫
2025-9-28 18:35:43
一、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
相关帖子
读发布!设计与部署稳定的分布式系统(第2版)笔记04_集成点
VictoriaMetrics 部署历史群集的另外两种方式
读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行
DeploySharp开源发布:让C#部署深度学习模型更加简单
macOS上优雅运行Docker容器
Kubernetes Deployment:部署与管理应用指南
读发布!设计与部署稳定的分布式系统(第2版)笔记06_用户
2.Android Compose 基础系列:在 Kotlin 中创建和使用变量
1.Android Compose 基础系列:您的第一个 Kotlin 程序
读发布!设计与部署稳定的分布式系统(第2版)
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
读发布!设计与部署稳定的分布式系统(第2版)笔记04_集成点
0
993
梁丘眉
2025-10-05
业界
VictoriaMetrics 部署历史群集的另外两种方式
0
601
梁丘艷蕙
2025-10-05
安全
读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行
0
51
翳舀
2025-10-06
业界
DeploySharp开源发布:让C#部署深度学习模型更加简单
0
512
徙办
2025-10-06
业界
macOS上优雅运行Docker容器
0
786
奄蜊
2025-10-06
业界
Kubernetes Deployment:部署与管理应用指南
0
747
些耨努
2025-10-06
安全
读发布!设计与部署稳定的分布式系统(第2版)笔记06_用户
0
7
荦绅诵
2025-10-08
业界
2.Android Compose 基础系列:在 Kotlin 中创建和使用变量
0
662
万妙音
2025-10-08
业界
1.Android Compose 基础系列:您的第一个 Kotlin 程序
0
408
任修
2025-10-09
安全
读发布!设计与部署稳定的分布式系统(第2版)
0
646
许娴广
2025-10-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
科技
程序
签约作者
程序园优秀签约作者
发帖
姥恫
2025-9-28 18:35:43
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
dage888
999994
富账慕
10013
匝抽
9986
4
孙淼淼
9992
5
筒濂
9985
6
柴古香
9993
7
凌彦慧
9991
8
崔瑜然
9984
9
敖可
9991
10
慢秤
9979
查看更多