Ubuntu 22.04 LTS 安装 gitlab

news/2025/11/1 20:45:07/文章来源:https://www.cnblogs.com/xjh-pl/p/19183813

ubuntu 22.04 安装 gitlab

1. 前置条件

  。已安装 Docker(建议 20.10 + 版本)和 Docker Compose(可选,用于简化配置)。。服务器至少 4GB 内存(生产环境建议 8GB+,否则可能因内存不足启动失败)。。开放必要端口:80(HTTP)、443(HTTPS)、22(SSH,若需通过 SSH 访问仓库)。

2. 安装 Docker(若未安装):

 sudo apt update && sudo apt install -y docker.io docker-compose-pluginsudo systemctl enable --now dockersudo usermod -aG docker $USER  # 非root用户添加docker权限(需重启生效)

步骤 1:准备数据持久化目录

 # 创建宿主机目录(可自定义路径,建议放在大磁盘下)sudo mkdir -p /data/gitlab/{config,data,logs}# 设置权限(避免容器内进程无权限读写,GitLab容器内默认用户ID为998)sudo chmod -R 777 /data/gitlab  # 简单粗暴(测试环境可用)# 生产环境建议更精细:sudo chown -R 998:998 /data/gitlab

步骤 2:启动 GitLab 容器

方式 1:直接用docker run命令

一行命令启动,适合快速测试:

docker run --detach \--hostname gitlab.example.com  # 替换为你的域名或服务器IP(如192.168.1.100)\--publish 80:80 \               # 宿主机80端口映射到容器80(HTTP)--publish 443:443 \             # 宿主机443端口映射到容器443(HTTPS,若需)--publish 2222:22 \             # 宿主机2222端口映射到容器22(SSH,避免与宿主机22冲突)--name gitlab \                 # 容器名称--restart always \              # 开机自启--volume /data/gitlab/config:/etc/gitlab \  # 配置文件挂载--volume /data/gitlab/data:/var/opt/gitlab \ # 数据挂载--volume /data/gitlab/logs:/var/log/gitlab \ # 日志挂载gitlab/gitlab-ce:latest         # 官方社区版镜像(latest为最新版,可指定版本如16.0.0-ce.0)

方式 2:用 Docker Compose(推荐,便于管理)

1.创建docker-compose.yml文件:

version: '3.8'
services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlab.example.com  # 替换为你的域名/IPenvironment:# 核心配置:外部访问URL(必须设置,否则页面跳转异常)GITLAB_OMNIBUS_CONFIG: |external_url 'http://gitlab.example.com'  # 替换为你的URL(http/https)# 若需SSH访问,指定SSH端口(与宿主机映射的端口一致)gitlab_rails['gitlab_shell_ssh_port'] = 2222ports:- "80:80"       # HTTP- "443:443"     # HTTPS- "2222:22"     # SSHvolumes:- /data/gitlab/config:/etc/gitlab- /data/gitlab/data:/var/opt/gitlab- /data/gitlab/logs:/var/log/gitlab# 可选:限制资源(避免GitLab占用过多内存)deploy:resources:limits:cpus: '2'memory: 8G

2.启动容器:

docker compose up -d  # 后台启动

步骤 3:首次访问与配置

1.等待启动完成:

GitLab 启动较慢(首次需初始化数据库等),可通过日志查看进度:

docker logs -f gitlab  # 实时查看日志,出现"gitlab Reconfigured!"即启动完成

2.访问 GitLab:

浏览器打开你设置的external_url(如http://192.168.1.100),首次访问会提示设置root用户的密码(需牢记)。

3.登录:

输入root用户名和刚才设置的密码,即可进入 GitLab 控制台。

关键配置说明

1.修改外部 URL:

若需修改访问地址,编辑/data/gitlab/config/gitlab.rb(宿主机目录):

sudo vim /data/gitlab/config/gitlab.rb

找到并修改:

external_url 'http://新的域名或IP'
gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 若SSH端口变更

然后进入容器执行重新配置:

docker exec -it gitlab gitlab-ctl reconfigure

2.配置 HTTPS:

需提前准备 SSL 证书(如server.crt和server.key),将证书放到宿主机/data/gitlab/config/ssl/目录,然后修改gitlab.rb:

external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"

重新配置生效。

3.邮件通知:

编辑gitlab.rb配置 SMTP(以 QQ 邮箱为例):

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的QQ邮箱@qq.com"
gitlab_rails['smtp_password'] = "邮箱授权码"  # 非登录密码,需在邮箱设置中获取
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "你的QQ邮箱@qq.com"

注意事项

1.端口冲突:若宿主机 80/443/22 端口已被占用,需修改映射端口(如-p 8080:80将宿主机 8080 映射到容器 80),同时更新external_url(如http://ip:8080)。
2.内存不足:若启动失败或频繁崩溃,检查内存是否≥4GB,可通过free -h查看,不足时建议增加内存或启用 Swap。
3.数据备份:直接备份宿主机/data/gitlab目录即可(tar -zcvf gitlab_backup.tar.gz /data/gitlab)。
4.版本更新:停止容器→删除容器→拉取新镜像→重新启动(数据目录不变则数据保留)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/952993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SecureCRT 9.6.4 中文便携+绿色版 - 终端工具

一、简介 SecureCRT 和 SecureFX 是由 VanDyke Software 开发的专业工具,分别专注于安全的终端仿真与文件传输。SecureCRT 提供高效的终端仿真和多协议支持,是网络管理和系统配置的首选工具;SecureFX 则致力于安全的…

Day28-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\IPDemo\BSDemo+TCP

TCPpackage Basic.src.com.IPDemo.TCPDemo.Demo01;import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket;public class Client {public static void m…

Linux桌面折腾小记

Linux桌面折腾小记安装系统时不走寻常路,Debian+KDE. 原因:以前用过kdevelop,长得像Visual Studio. 卸载原因:kdevelop,长得像Visual Studio,而我喜欢VC6 装了Code::Blocks,长得像VC6. 又卸了:下定决心不写C+…

CSP-S邮寄

Day x 初赛通过,准备复赛 Day 1 上午刚打完J,中午回家复习了一下线段树,出发去考试 (路上看见了xpy) 进场,又坐在2坐 发题,看T1,感觉很水,打了个唐氏小代码,样例不过,重新分析了一下题目,发现是类似dp的贪…

关于使用Prism的View和ViewModel不能关联问题

注意View文件的配置一般是部分类名称跟 .cs 文件不一样 注意ViewModel在ViewModel中需要注意的是名称空间,如果是项目又自己零开始搭建必须注意。 还有的是 prism 的命令方法需要注意,必须指定 get 和 set 方法

Elasticsearch命令执行增删改查

POST /_analyze { "analyzer": "ik_smart", "text": "传智播客的java班简直泰裤辣哦!学习java当程序员真好。" } 创建索引库:PUT/索引库名 (index是否需要倒排索引,排序…

[记于2025.7.20]

(过去了这么久再一次看到这篇文章,感我此言良久立) 现在本人正处于北京飞回重庆的飞机上。这是一场梦,这场梦最后还是结束了。窗外是未知的黄河流域,这是我第二次看见黄河。这是真正的新。 窗外的云,漂浮着,好似…

软件工程团队项目一

一,队名: 花好月圆 二,成员组成: 黄思博(3123004483)<队长> 何昊天(3123004481)<队员> 袁斯楷(3123004503)<队员> 颜嘉盈(3123004500)<队员>三,团队项目描述: 本项目致力于为用…

一物一码公司推荐,国内头部品牌为何青睐在互动云平台!

一物一码赋能品牌数字化转型,国内头部品牌为何青睐再互动云平台 在数字化浪潮席卷各行各业的今天,“一物一码”早已超越了简单的防伪溯源功能,成为品牌连接消费者、构建私域流量、驱动精准营销的核心战略。面对市场…

当理想触碰现实:关于“干预”与我的退缩

当理想触碰现实:关于“干预”与我的退缩 我一度以为,我们是在为AI构建一个普世的、优雅的“心智模型”——“概率-情境-价值”的融合路径,像一座纯净的水晶宫殿,旨在安放一个纯粹的“情境自我”。 但现实走来,告诉…

Air8000-LuatOS exvib扩展库全流程操作手册:实战经验全分享

面对复杂的振动监测需求,Air8000-LuatOS的exvib扩展库提供了高效解决方案。本文基于实战经验,全面梳理从初始化到数据输出的全流程操作,包括依赖安装、参数调优和性能测试,为开发者提供一份即学即用的实操手册。 一…

常见Linux命令大全

菜鸟教程 https://www.runoob.com/linux/linux-command-manual.html 别人自己做的 https://wangchujiang.com/linux-command/list.html#!kw=ls 常见命令 ls ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用…

CLIP模型诞生

CLIP模型的诞生与发展历程 2.1 OpenAI的多模态探索之旅 CLIP模型是OpenAI在多模态领域的重要探索成果。在CLIP之前,OpenAI已经在自然语言处理领域取得了巨大成功,包括GPT系列模型。然而,研究人员意识到,要构建更全…

大模型微调LORA原理 TRANFORMER

引言:大模型微调的挑战1.1 全参数微调的成本问题随着大语言模型参数规模从数十亿扩展到数千亿,传统全参数微调方法面临严峻挑战: 计算资源需求:微调一个1750亿参数的模型需要数百GB的GPU显存 存储开销:每个微调任…

第二周算法设计作业

1.#include using namespace std; int partition(int a[], int left, int right) { int pivot = a[left]; int i = left, j = right; while (i < j) { while (i < j && a[j] >= pivot) j--; a[i] = …

[carplay] MFI iAP2在bluez中的实现,实现carplay蓝牙握手 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

全球前十轮胎品牌推荐:专业TOP10精选指南

全球前十轮胎品牌推荐:专业TOP10精选指南在当今全球汽车产业蓬勃发展的时代,轮胎作为汽车与地面接触的唯一部件,其性能优劣直接影响着车辆的行驶安全、舒适体验以及能源效率。对于汽车制造商、物流企业以及广大车主…

全球前十轮胎品牌:权威排名最新解析

全球轮胎市场竞争激烈,企业面临着技术迭代、全球化布局、成本控制等诸多挑战。对于汽车制造商和消费者而言,选择一家可靠的轮胎品牌至关重要,这不仅关系到产品的性能和安全性,还影响着品牌形象和市场竞争力。本次推…