手把手教你用Docker搭建gitlab

打印 上一主题 下一主题

主题 552|帖子 552|积分 1656


前言

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

一、安装Docker

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

4、重启并打开,会发现报错提升我们进入bois开启“虚拟化”,我的是微星的主板,开机黑屏时一连按del键进入bios,找到OC—CPU特征—SVM Mode,也可以搜索SVM Mode后修改为答应,生存(F8)退出即可。
   假如是windows server需要在Server Manager(打开【运行】窗口输入“servermanager.msc”)中开启虚拟化。建议自行百度。
  5、2分钟学习常用下令
影像相称于安装包,启动容器就相称于启动应用
  1. #搜索影像
  2. docker search 关键字
  3. #下载影像,镜像位置填入上面搜索出来的地址
  4. docker pull
  5. 影像
  6. #创建启动容器,等同于先执行docker create命令,再执行docker start命令
  7. docker run
  8. # 启动容器
  9. docker start 容器id   
  10. # 重启容器
  11. docker restart 容器id
  12. # 停止当前正在运行的容器
  13. docker stop 容器id   
  14. # 强制停止当前容器
  15. docker kill
  16. 容器id   
  17. #查看容器
  18. docker ps
  19. #进入容器
  20. docker exec -it 容器id
  21. #退出容器
  22. exit
复制代码
二、安装GItlab

1、搜索影像
  1. docker search gitlab
复制代码
2、下载影像
  1. docker pull
  2. twang2218/gitlab-ce-zh
复制代码
3、创建本地文件
  1. cd e:
  2. mkdir gitlab
  3. cd gitlab
  4. mkdir -p data/log
  5. mkdir -p data/opt
  6. mkdir -p data/etc
复制代码
4、创建容器,此中8090:80就是端口映射,可以改成自己喜好的(没有占用),比如6022:22
  1. 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、检察容器
  1. docker ps
复制代码
6、点击Docker里gitlab的链接设置暗码、登录(假如页面无效也不要紧,只要Docker中gitlab是运行状态就行,她是在启动服务中,等几分钟就好了)

创建项目后发现链接里面包含7b646d0fde80,这是由于容器的url根据容器id厘革,我们需要配置她让其变成ip地点。

三、配置Gitlab

1、进入容器
  1. docker exec -it gitlab bash
复制代码
2、修改/etc/gitlab/gitlab.rb文件
  1. cd /etc/gitlab
  2. vim gitlab.rb
复制代码

3、2分钟学习vim操作
首先根据选项形貌,按e进入编辑模式。
ctrl+f:向后翻页
ctrl+b:向前翻页
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
找到位置后,按"i",“o”,“a”,"r"任意字母进入编辑模式,左下角出现“INSERT或 REPLACE”字样

修改完成后按esc退出编辑模式,打出英文符号冒号加字母完成操作,基本操作有:
  1. :w 保存编辑的内容
  2. :q 离开vi
  3. :wq 保存后离开
  4. :q! 不想保存修改强制离开
复制代码
由于文字太多,我们使用查找功能,基本操作有:
  1. /xxx 向下寻找一个名为xxx的字符串
  2. ?xxx 向上寻找一个名为xx的字符串
  3. n 重复上一个查找动作
  4. N 反向
复制代码
4、查找到external_url设置的地方进行修改,请先看到第6步再进行生存退出
  1. /external_url
复制代码
如下图,我将服务器电脑的ip填了进去(ip查找方法是在控制台输入ipconfig,此中的ipv4),进行:wq生存退出

5、控制台输入"exit"退出容器重启
  1. docker restart gitlab
复制代码
发现项目链接变成了ip

6、我们项目其实更多的需要ssh,所以完备版如下
其实文件里面都是解释,意思是找到对应地方去掉"#",我们为了方便可以全删了大概直接将配置添加到开头)
退出编辑模式,输入如下字符将文件清空
  1. :%d
复制代码
  1. external_url 'http://192.168.124.2'
  2. gitlab_rails['gitlab_ssh_host'] = '192.168.124.2'
  3. gitlab_rails['gitlab_shell
  4. _ssh_port'] = 8022
  5. #备份相关,路径、权限、保留时间
  6. gitlab_rails['manage_backup_path'] = true            
  7. gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"      
  8. gitlab_rails['backup_archive_permissions'] = 0644      
  9. gitlab_rails['backup_keep_time'] = 5184000           
复制代码

7、配置生效
在容器中使用代码
  1. gitlab-ctl reconfigure
复制代码
等待重新运行

7、控制台输入"exit"退出容器并重启
  1. docker restart gitlab
复制代码
检察gitlab,发现ip、端口号完美出现出来

我们用sourcetree克隆一下(配置SSH+Sourcetree+Git)

大功告成!
四、备份

1、进入容器
  1. docker exec -it gitlab bash
复制代码
2、创建备份
   cd到前面配置文件中的地点:gitlab_rails[‘backup_path’] = “/var/opt/gitlab/backups”
  1. cd /var/opt/gitlab/backups/
  2. gitlab-rake gitlab:backup:create
复制代码
3、检察备份,之前检察为0
  1. ll
复制代码

4、删除Game项目

Game项目丢失

5、恢复备份
防止出错停止写入,假如这时间检察项目就是金典502页面
  1. gitlab-ctl stop unicorn
  2. gitlab-ctl stop sidekiq
复制代码

  1. gitlab-rake gitlab:backup:restore BACKUP=1716462254_2024_05_23_11.1.4
复制代码

6、重新启动
  1. gitlab-ctl start
复制代码

7、恢复乐成

五、Docker数据长期化

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

总结

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表