手把手教你用Docker搭建gitlab


前言

如题所述,手把手带你搭建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 硬盘中创建了文件夹用于挂载数据。这样即使容器重新启动,所有数据也会保留。原本我打算专门写一篇关于数据持久化的文章,但考虑到其实际用途不大,所以决定将这一内容融合到现有的文章中。
如果想了解更多的可以自行去官方文档或其他博客学习。


总结

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

  • 44
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是Docker搭建GitLab使用教程: 1. 安装Docker 首先,需要在您的计算机上安装Docker。您可以在Docker官网上下载适合您操作系统的Docker安装程序。 2. 下载GitLab镜像 在Docker中,我们使用镜像来创建容器。因此,我们需要下载GitLabDocker镜像。您可以在Docker Hub上找到GitLab的官方镜像。 要下载GitLab镜像,请在终端中运行以下命令: ``` docker pull gitlab/gitlab-ce ``` 3. 创建GitLab容器 下载GitLab镜像后,我们需要使用它来创建一个容器。要创建GitLab容器,请在终端中运行以下命令: ``` docker run -d \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 这将创建一个名为“gitlab”的容器,并将其绑定到主机的端口80、443和22。它还将使用三个卷来存储GitLab的配置、日志和数据。 4. 访问GitLab 现在,您可以通过浏览器访问GitLab。只需在浏览器中输入您的主机IP地址或域名,然后按Enter键即可。您将看到GitLab的欢迎页面。 5. 配置GitLab 在访问GitLab之前,您需要进行一些配置。首先,您需要创建一个管理员帐户。要创建管理员帐户,请按照以下步骤操作: - 单击GitLab欢迎页面上的“注册”按钮。 - 输入您的姓名、用户名、电子邮件地址和密码。 - 选择“管理员”作为您的角色。 - 单击“注册”按钮。 现在,您已经创建了一个管理员帐户。接下来,您需要配置GitLab的设置。要配置GitLab,请按照以下步骤操作: - 单击GitLab欢迎页面上的“管理区域”链接。 - 输入您的管理员用户名和密码。 - 单击“登录”按钮。 - 单击“管理区域”链接。 - 单击“设置”链接。 - 配置您的GitLab设置。 6. 使用GitLab 现在,您已经成功地搭建GitLab,并进行了一些基本的配置。您可以使用GitLab来管理您的代码库、问题跟踪、CI/CD等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值