广州找人做网站/深圳网络推广培训机构

广州找人做网站,深圳网络推广培训机构,网站建设在哪些方面,武汉网站建设流程文章目录 前言一、安装Docker二、安装GItlab三、配置Gitlab四、备份五、Docker数据持久化总结 前言 如题所述,手把手带你搭建gitlab,目标是实现ssh链接clone项目,不会我随你怎么说。 说正题,GitLab 是一个基于 Git 的全面 DevOps…

文章目录

  • 前言
  • 一、安装Docker
  • 二、安装GItlab
  • 三、配置Gitlab
  • 四、备份
  • 五、Docker数据持久化
  • 总结


前言

如题所述,手把手带你搭建gitlab,目标是实现ssh链接clone项目,不会我随你怎么说。
说正题,GitLab 是一个基于 Git 的全面 DevOps 平台,涵盖了从代码管理、持续集成和持续交付 (CI/CD) 到项目管理和安全测试的整个软件开发生命周期。由于可以布置到本地,GitLab 使开发团队在开发和项目管理时更加高效,实现了快速协作和代码管理。


一、安装Docker

1、可以去官方下载,也可以使用Docker下载链接4.30。
汉化包4.29-4.30
2、一步步按官方推荐安装并注册账号
3、检查版本(以下均用Windows PowerShell(管理员)控制台进行操作)

docker -v

在这里插入图片描述
4、重启并打开,会发现报错提升我们进入bois开启“虚拟化”,我的是微星的主板,开机黑屏时连续按del键进入bios,找到OC—CPU特征—SVM Mode,也可以搜索SVM Mode后修改为允许,保存(F8)退出即可。

如果是windows server需要在Server Manager(打开【运行】窗口输入“servermanager.msc”)中开启虚拟化。建议自行百度。

5、2分钟学习常用命令
影像相当于安装包,启动容器就相当于启动应用

#搜索影像
docker search 关键字
#下载影像,镜像位置填入上面搜索出来的地址
docker pull 影像
#创建启动容器,等同于先执行docker create命令,再执行docker start命令
docker run
# 启动容器
docker start 容器id   
# 重启容器
docker restart 容器id 
# 停止当前正在运行的容器
docker stop 容器id    
# 强制停止当前容器
docker kill 容器id   
#查看容器 
docker ps 
#进入容器
docker exec -it 容器id
#退出容器
exit

二、安装GItlab

1、搜索影像

docker search gitlab

2、下载影像

docker pull twang2218/gitlab-ce-zh

3、创建本地文件

cd e:
mkdir gitlab
cd gitlab
mkdir -p data/log
mkdir -p data/opt
mkdir -p data/etc

4、创建容器,其中8090:80就是端口映射,可以改成自己喜欢的(没有占用),比如6022:22

docker run -itd -p 8443:443 -p 8090:80 -p 8022:22 --name gitlab -v $PWD/data/etc:/etc/gitlab -v $PWD/log:/var/log/gitlab -v $PWD/data/opt:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh

成功后会有一串代码打印出来
5、查看容器

docker ps

6、点击Docker里gitlab的链接设置密码、登录(如果页面无效也不要紧,只要Docker中gitlab是运行状态就行,她是在启动服务中,等几分钟就好了)
在这里插入图片描述
创建项目后发现链接里面包含7b646d0fde80,这是因为容器的url根据容器id变化,我们需要配置她让其变成ip地址。
在这里插入图片描述

三、配置Gitlab

1、进入容器

docker exec -it gitlab bash

2、修改/etc/gitlab/gitlab.rb文件

cd /etc/gitlab 
vim gitlab.rb

在这里插入图片描述
3、2分钟学习vim操作
首先根据选项描述,按e进入编辑模式。
ctrl+f:向后翻页
ctrl+b:向前翻页
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
找到位置后,按"i",“o”,“a”,"r"任意字母进入编辑模式,左下角出现“INSERT或 REPLACE”字样
在这里插入图片描述
修改完成后按esc退出编辑模式,打出英文符号冒号加字母完成操作,基本操作有:

:w 保存编辑的内容
:q 离开vi
:wq 保存后离开
:q! 不想保存修改强制离开

因为文字太多,我们使用查找功能,基本操作有:

/xxx 向下寻找一个名为xxx的字符串
?xxx 向上寻找一个名为xx的字符串
n 重复上一个查找动作
N 反向

4、查找到external_url设置的地方进行修改,请先看到第6步再进行保存退出

/external_url

如下图,我将服务器电脑的ip填了进去(ip查找方法是在控制台输入ipconfig,其中的ipv4),进行:wq保存退出
在这里插入图片描述
5、控制台输入"exit"退出容器重启

docker restart gitlab

发现项目链接变成了ip
在这里插入图片描述

6、我们项目其实更多的需要ssh,所以完整版如下
其实文件里面都是注释,意思是找到对应地方去掉"#",我们为了方便可以全删了或者直接将配置添加到开头)

退出编辑模式,输入如下字符将文件清空

:%d
external_url 'http://192.168.124.2'
gitlab_rails['gitlab_ssh_host'] = '192.168.124.2'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
#备份相关,路径、权限、保留时间
gitlab_rails['manage_backup_path'] = true             
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"       
gitlab_rails['backup_archive_permissions'] = 0644      
gitlab_rails['backup_keep_time'] = 5184000           

在这里插入图片描述

7、配置生效
在容器中使用代码

gitlab-ctl reconfigure

等待重新运行
在这里插入图片描述

7、控制台输入"exit"退出容器并重启

docker restart gitlab

查看gitlab,发现ip、端口号完美呈现出来
在这里插入图片描述

我们用sourcetree克隆一下(配置SSH+Sourcetree+Git)
在这里插入图片描述
大功告成!

四、备份

1、进入容器

docker exec -it gitlab bash

2、创建备份

cd到前面配置文件中的地址:gitlab_rails[‘backup_path’] = “/var/opt/gitlab/backups”

cd /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:create

3、查看备份,之前查看为0

ll

在这里插入图片描述
4、删除Game项目
在这里插入图片描述
Game项目丢失
在这里插入图片描述
5、恢复备份
防止出错停止写入,如果这时候查看项目就是金典502页面

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

在这里插入图片描述

gitlab-rake gitlab:backup:restore BACKUP=1716462254_2024_05_23_11.1.4

在这里插入图片描述
6、重新启动

gitlab-ctl start

在这里插入图片描述
7、恢复成功在这里插入图片描述

五、Docker数据持久化

我提到这一点是因为Docker与普通的虚拟机不同。在Docker中,当容器重启后,容器运行过程中产生的日志或者数据库数据都会被清空。然而,很多博客没有提到这一点,导致用户在遇到重启时数据丢失,必须重新创建数据,从而感到措手不及。
在第二节安装 GitLab 时,我在本地的 Windows 硬盘中创建了文件夹用于挂载数据。这样即使容器重新启动,所有数据也会保留。原本我打算专门写一篇关于数据持久化的文章,但考虑到其实际用途不大,所以决定将这一内容融合到现有的文章中。
如果想了解更多的可以自行去官方文档或其他博客学习。


总结

感谢您阅读这篇文章!我致力于将技术内容讲解得通俗易懂,让每一位读者都能轻松上手。如果您觉得这篇文章对您有所帮助,请不吝点赞支持。如果有任何疑问或建议,欢迎在评论区留言,您的反馈将帮助我不断改进,打造更完美的内容。谢谢大家的支持!

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

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

相关文章

基于springboot住院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展,推动了很多行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的线上管理系统。当前的住院管理存在管理效率低下&…

数据采集技术之python网络爬虫(中国天气网的爬取)

一、爬取中国天气网所有地区当天的天气数据(PyCharm): 网址:https://www.weather.com.cn/ 下面爬取数据: 因为现在已经到了夜间,所以白天的数据已经不见了,但原理是一样的。 二、代码以及详情…

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令,用于创建并启动一个新的容器。 -d : 后台模式(detached mode&#xff09…

41.HarmonyOS NEXT Layout布局组件系统详解(八):自定义样式与类

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT Layout 布局组件系统详解(八):自定义样式与类 文章目录 HarmonyOS NEXT Layout 布局组件系统详…

【Go | 从0实现简单分布式缓存】-7:增加etcd和gRPC功能

本文目录 1.序2.引入etcd缓存流程项目结构 3.gocachepb.proto4.服务注册register.go5.服务发现discover.go6.gRPC客户端client.gopeers.goclient.go 7.gRPC服务端实现server.go一些问题缓存获取流程缓存设置流程为什么要带超时的上下文? 1.序 GeeCache项目并没有引…

Pytorch系列教程:可视化Pytorch模型训练过程

深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解,使我们能够做出合理的决策。训练进度必须可视化的两种方法是:使用Matplotlib和Tensor Board。在本文…

18 | 实现简洁架构的 Handler 层

提示: 所有体系课见专栏:Go 项目开发极速入门实战课;欢迎加入我的训练营:云原生AI实战营,一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营;本节课最终源码位于 fastgo 项目的 feature/s14 分支&#x…

STM32之I2C硬件外设

注意:硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器,此时会置状态寄存器的TXE为1,表示发送寄存器为空,然后往数据控制寄存器中一位一位的移送数…

不用 Tomcat?SpringBoot 项目用啥代替?

在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。 同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使…

基于SpringBoot的“体育购物商城”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“体育购物商城”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体模块设计 前台用户登录界面 系统首页界面…

go context学习

1.Context接口2.emptyCtx3.Deadline()方法4.Done()方法5.Err方法6.Value方法()7.contex应用场景8.其他context方法 1.Context接口 Context接口只有四个方法,以下是context源码。 type Context interface {Deadline() (deadline time.Time, …

在VMware Workstation Pro上轻松部署CentOS7 Linux虚拟机

首先我们需要下载VM虚拟机和Centos7的镜像 下载并安装VMware Workstation Pro 访问VMware Workstation Pro官网下载 https://www.vmware.com/ 第二步:下载centos7镜像 访问centos官网下载 https://www.centos.org/ 开始部署Centos7 点击创建新的虚拟机 这里是Cen…

Android AudioFlinger(五)—— 揭开AudioMixer面纱

前言: 在 Android 音频系统中,AudioMixer 是音频框架中一个关键的组件,用于处理多路音频流的混音操作。它主要存在于音频回放路径中,是 AudioFlinger 服务的一部分。 上一节我们讲threadloop的时候,提到了一个函数pr…

从0开始的操作系统手搓教程27:下一步,实现我们的用户进程

目录 第一步:添加用户进程虚拟空间 准备冲向我们的特权级3(用户特权级) 讨论下我们创建用户线程的基本步骤 更加详细的分析代码 用户进程的视图 说一说BSS段 继续看process.c中的函数 添加用户线程激活 现在,我们做好了TSS…

Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)

1、实时通信有哪些实现方式? 特性轮询(Polling)WebSocketSSE (Server-Sent Events)通信方向单向(客户端 → 服务端)双向(客户端 ↔ 服务端)单向(服务端 → 客户端)连接方…

Android Native 之 文件系统挂载

一、文件系统挂载流程概述 二、文件系统挂载流程细节 1、Init启动阶段 众所周知,init进程为android系统的第一个进程,也是native世界的开端,要想让整个android世界能够稳定的运行,文件系统的创建和初始化是必不可少的&#xff…

Redis--Set类型

目录 一、引言 二、介绍 三、命令 1.sadd,smembers,sismember 2.spop,srandmember 3.smove,srem 4.sinter,sinterstore 5.sunion,sunionstore,sdiff,sdiffstore 四、内部编码 1.intset 2.hashtable 五、应用场景 1.使用Set保存用…

Faster R-CNN原理详解以及Pytorch实现模型训练与推理

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

使用dockerfile创建镜像

1.什么是Dockerfile Dockerfile 是一个用于指导 Docker 镜像构建过程的脚本文件。它通过一系列指令来详细描述了构建镜像所需的步骤和配置细节。利用 Dockerfile,我们可以精确地设定容器的运行环境,安装必要的软件,复制项目文件,…

大脑宏观结构中的富集俱乐部:图论分析视角

摘要 大脑是一个高度复杂的网络。越来越多的证据支持大脑网络中一组重要脑区的关键作用,这些脑区通常被称为大脑的“核心”或“枢纽”区域。这些区域不仅能量消耗较高,而且在神经信息传递方面的效率也极高,因此被称为“富集俱乐部”。富集俱乐…