docker自建GitLab仓库

摘要

GitLab 是一个功能强大的开源代码托管平台,它不仅提供了代码存储和版本控制的核心功能,还集成了项目管理、CI/CD 流水线、代码审查等企业级特性。本文将指导你如何在自己的服务器上搭建 GitLab 社区版,创建一个完全属于自己的开源仓库,享受私有化部署带来的灵活性与安全性。

一、拉取gitlab镜像

1.输入命令docker pull gitlab/gitlab-ce

2.输入docker images 查看镜像拉取成功

二、启动容器

1.输入启动容器命令

docker run -itd --name gitlab -p 443:443 -p 80:80 -p 222:22 --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

命令解释:

  • -i :以交互模式运行容器,通常与 -t 同时使用命令解释
  • -t :为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -d :后台运行容器,并返回容器ID
  • -p:80:80 将容器内80端口映射至宿主机80端口,这是访问gitlab的端口
  • -p:222:22 将容器内22端口映射至宿主机222端口,这是访问ssh的端口
  • -v :/usr/local/gitlab-test/etc:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-test/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
  • –restart always :容器自启动
  • –privileged=true :让容器获取宿主机root权限
  • –name gitlab :设置容器名称为gitlab
  • gitlab/gitlab-ce :镜像的名称,这里也可以写镜像ID

docker run -v挂载目录时,若本地没有该目录挂载时会自动创建。

[root@hadoop102 ~]# ls /home/
gitlab

[root@hadoop102 ~]# ls /home/gitlab/
config  data  logs

2.修改gitlab.rb配置文件

vim /home/gitlab/config/gitlab.rb

因为我这里已经修改完了,就直接展示修改完之后的文件内容

只需要增加这三行内容,其余不用动

external_url 'http://192.168.59.130'    //配置http协议所使用的gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
gitlab_rails['gitlab_ssh_host'] = '192.168.59.130'    //配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_shell_ssh_port'] = 222    //此端口是docker run时22端口映射的222端口

3.重启gitlab容器

docker restart gitlab

访问报错

报错原因:内存不足会提示502报错。(服务器内存至少4G,不够会出现502错误。)

经检查发现虚拟机内存仅为1G

扩展虚拟机内存为4G,并重启虚机

成功访问

三、登录仓库

1.宿主机中搜索initial_root_password文件

find / -name initial_root_password

Password:gitlab的初始密码

2.修改密码

  • 首先输入命令 docker exec -it gitlab /bin/bash 进入gitlab容器

  • 输入命令 gitlab-rails console -e production 启动Ruby on Rails控制台

 

  • 控制台加载完毕,搜索用户,有两种方法
    • user = User.where(id: 1).first
    • user = User.find_by(email: 'admin@example.com')

因为我这里只有一个用户,所以采取第一种方式

  • 更改密码
user.password = '新密码'

user.password_confirmation = '新密码'

  • 保存
user.save

  • 退出控制台,退出容器

  • 登录

四、配置中文界面

保存之后刷新页面变为中文界面

结语

搭建并维护自己的 GitLab 仓库是一项提升团队协作效率和代码管理能力的重要举措。随着你对 GitLab 功能的深入探索,你会发现更多提高开发效率和代码质量的方法。现在,你已经拥有了一个强大的开源代码托管平台,开始你的开源项目之旅吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础命令(续)

17,wc命令 作用:统计行数、单词数、字符个数 格式: wc 选项 文件 wc passwd 26 36 1159 passwd26:行数 36:单词数 1159:字符数 passwd:文件名wc autofs.conf 426 2604 15137 autofs.conf426…

某攻防演练心得之随笔记

最近太忙了,忙于各种奇奇怪怪的事情,有攻防,有应急,有渗透,还成为了一段时间内的“word高级工程师”......有师傅说我现在更新的越来越慢了,是呀,其实我也不知道怎么了,每天各种新闻…

用balenaEtcher烧录ubuntu的iso文件都失败,所以选用了另一种烧录的软件Rufus,然后烧录成功了+安装ubuntu的坑

https://releases.ubuntu.com/bionic/进入网页下载ubuntu 选择烧录软件将下载的Ubuntu烧录到U盘中 之前用这个U盘烧录过一次,成功了,后来应该是U盘受损或者是什么其他原因使得用这个U盘总是烧录失败 换思路:由于一直使用balenaEtcher烧录ubu…

《四月女友》开启预售 “不想错过”鼓励情侣找回消失的爱

电影《四月女友》由中国电影集团公司进口,中国电影股份有限公司发行、译制,改编自川村元气同名小说,山田智和导演,佐藤健、长泽雅美、森七菜主演。《四月女友》今日发布“不想错过”版预告,预告中,佐藤健饰…

【论文阅读笔记】HermesSim(Code is not Natural Language) (Security 24)

个人博客地址 HermesSim [Security 24] 论文:《Code is not Natural Language: Unlock the Power of Semantics-Oriented Graph Representation for Binary Code Similarity Detection》 仓库:https://github.com/NSSL-SJTU/HermesSim 提出的问题 二…

Pyhton专题学习资料包,Python从入门到精通全套学习资料[30G]

资源概览 百本Python学习书籍大礼包百本前端学习书籍大礼包微专业-数据挖掘分析之Python篇小甲鱼零基础入门学习Python(全96集) 资源获取 🧑‍💻【Pyhton专题资料】【30G】 百本Python书籍## 百本前端书籍 微专业-数据挖掘分析之Python篇 预备课【先…

【问题解决】记一个“奇怪”的java.lang.NoSuchMethodError错误

问题现象 近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下: A类提供了setJumpType(String type),B类调用A类的setJumpType(String type)报错java.lang.NoSuchMethodError: com.xxx.A.setJumpType(Lja…

北京软考职称、入户相关疑问解答

很多考生考软考证书是为了职称和入户,那么北京软考证书可以用于入户吗?软考职称认定有什么条件? 北京软考职称如何认定? 从以上图片描述我们可以知道,北京软考职称认定是有学历、资历要求的。北京近两年的“职称评审通…

HTTP 连接详解

概述 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,客户端可以打开一条TCP/IP连接,连接到任何地方的服务器。一旦连接建立,客户端和服务器之间交换的报文就永远不会丢失、受损或失序 TCP(Transmission Control Protocol&…

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制 网络地址转换(NAT)是现代网络架构中不可或缺的一个组成部分,尤其在防火墙技术的实现中扮演着重要角色。本文旨在全面解读NAT的工作机…

pci设备枚举流程

概念 PCI设备:遵循PCI规范,工作在PCI局部总线环境下的设备。PCI局部总线规范指出,每个PCI设备可以包含最多8个PCI功能,每个PCI功能是一个逻辑设备 PCI桥设备:由于电子负载限制,每条PCI总线上可以挂载的设…

机器人学导论实验3-机器人定位中的直线拟合与提取

目录 1 实验目的 2 任务一:直线拟合 2.1 内容分析 2.2 过程分析 2.3 结果分析 3 任务二:直线提取 3.1 内容分析 3.2 过程分析 3.3 结果分析 4 遇到的问题和心得 机器人导论实验-机器人定位中的直线拟合与提取 1 实验目的 2 任务一: 直线…

Dubbo基本使用

Dubbo基本使用 1.项目介绍2.开发步骤2.1 启动注册中心2.2 初始化项目2.3 添加 Maven 依赖2.3.1 父pom.xml2.3.1 consumer模块和provider模块pom.xml 2.4 定义服务接口2.5 定义服务端的实现2.6 配置服务端 Yaml 配置文件2.7 配置消费端 Yaml 配置文件2.8 基于 Spring 配置服务端…

抖音本地团购商家采集软件使用指南

引言: 随着移动互联网的快速发展,抖音成为了一个极为受欢迎的短视频平台。在抖音上存在着大量的本地团购商家,对于一些用户来说,这是一个很好的在线购物平台。但是要想找到适合自己的本地团购商家,需要花费大量的时间和…

2.分布式-算法

目录 一、限流算法有哪些? 1.计数器算法(Counter-Based Algorithm) 2.固定窗口算法(Fixed Window) 3.滑动窗口算法(Sliding Window) 4.令牌桶算法(Token Bucket) 5.…

Spring底层入门(十一)

1、条件装配 在上一篇中,我们介绍了Spring,Spring MVC常见类的自动装配,在源码中可见许多以Conditional...开头的注解: Conditional 注解是Spring 框架提供的一种条件化装配的机制,它可以根据特定的条件来控制 Bean 的…

Redis 的数据库管理

Redis 提供了⼏个⾯向 Redis 数据库的操作,分别是 dbsize、select、flushdb、flushall 命令, 我将介绍这些常见的命令。 切换数据库 select dbIndex许多关系型数据库,例如 MySQL ⽀持在⼀个实例下有多个数据库存在的,MySQL 可以…

SQLZOO:The JOIN operation

数据表:game-gaol-eteam game idmdatestadiumteam1team210018 June 2012National Stadium, WarsawPOLGRE10028 June 2012Stadion Miejski (Wroclaw)RUSCZE100312 June 2012Stadion Miejski (Wroclaw)GRECZE100412 June 2012National Stadium, WarsawPOLRUS... goal …

mapreduce | 自定义Partition分区(案例2)

1.需求 统计每个手机号消费总金额,按照消费金额降序排序,最终联通、电信、移动分别写入不同的文件。 130、131、132(联通) 133(电信) 135、136、137、138、139 (移动) 手机号,消费记…

卡尔曼滤波状态估计

clear all; close all; clc; %% 上面是调用卡尔曼滤波 % 定义状态维数和初始条件 n 3; % 状态维数 q 0.2; % 过程噪声标准差 r 0.15; % 测量噪声标准差 Q q * eye(n); …