Linux(Ubuntu):搭建GitLab托管代码

摘要:
GitLab简介:GitLab是利用RubyonRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。团队成员可以利用内置的简单聊天程序进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab 简介:

GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。(企业常用)

1. GitLab 安装

首先我们通过https://hub.docker.com/进入到改网站进行查询操作,查看相应的中文版的GitLab

首先在这个目录/usr/local/docker 下创建一个文件夹gitlab文件夹,然后创建一个docker-compose.yml文件,然后使用下面的命令进行编辑即可, 记得把tomcat 和mysql关掉

我们使用 Docker 来安装和运行 GitLab 中文版,由于新版本问题较多,这里我们使用目前相对稳定的 9.4 版本,docker-compose.yml配置如下:

version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh:9.4'
      restart: always
      hostname: '192.168.75.145' 记得修改ip
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.75.145:8080'           gitlab的默认端口是80,这里改成了8080怕和nginx冲突 记得修改ip
          gitlab_rails['gitlab_shell_ssh_port'] = 2222        shh的端口号是22会和gitlab冲突,所以改成2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 8080             这里说明是gitlab是基于nginx的反向代理访问到的设置映射的端口8080
      ports:
        - '8080:8080'                     
        - '8443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/data:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab
安装完成后使用命令docker logs -f 33d51883e5df 显示gitlab的日志进行查看
因为gitlab比较消耗内存官方解释为1GB内存,实际工作中为8GB内存,我们可以使用命令进行查看内存及cup的消耗等操作,具体的如下所示:
free -h  表示查看当前内存占用率,我们第一次启动的时候是非常慢的所以要等好长时间等git在自动的进行配置

安装完成后的工作

  • 访问地址:http://ip:8080
  • 端口 8080 是因为我在配置中设置的外部访问地址为 8080,默认是 80
  • 初始化安装完成后效果如下:

Linux(Ubuntu):搭建GitLab托管代码第1张

  • 设置管理员初始密码,这里的密码最好是 字母 + 数字 组合,并且 大于等于 8 位
  • 这个的gitlab的密码为12345678
  • 配置完成后登录,管理员账号是 root

Linux(Ubuntu):搭建GitLab托管代码第2张

注意:如果服务器配置较低,启动运行可能需要较长时间,请耐心等待

2. GitLab 设置

第一次使用时需要做一些初始化设置,点击“管理区域(就是那个小扳手)”-->“设置(就是那个小齿轮)”

Linux(Ubuntu):搭建GitLab托管代码第3张

账户与限制设置

关闭头像功能,由于 Gravatar 头像为网络头像,在网络情况不理想时可能导致访问时卡顿

Linux(Ubuntu):搭建GitLab托管代码第4张

注册限制

由于是内部代码托管服务器,可以直接关闭注册功能,由管理员统一创建用户即可

Linux(Ubuntu):搭建GitLab托管代码第5张

3. GitLab 账户

使用时请不要直接通过 root 用户操作,需要先创建用户,然后通过创建的用户操作,如果你是管理员还需要为其他开发人员分配账户

创建用户

点击“管理区域”-->“新建用户”

Linux(Ubuntu):搭建GitLab托管代码第6张

设置账户信息

同时你可以将自己设置为管理员

Linux(Ubuntu):搭建GitLab托管代码第7张

修改用户密码

由于我们创建时并没有配置邮箱,所以还需要重新编辑用户信息并手动设置密码

Linux(Ubuntu):搭建GitLab托管代码第8张

Linux(Ubuntu):搭建GitLab托管代码第9张

退出并使用新账户登录

Linux(Ubuntu):搭建GitLab托管代码第10张

注意:创建完账户,第一次登录时还会提示你修改登录密码

4. GitLab 使用:

创建第一个托管项目

点击+号 -->新建项目(注意这里是新建群组选第二个)

Linux(Ubuntu):搭建GitLab托管代码第11张

输入项目名称及描述信息,设置可见等级为私有,这样别人就看不见你的项目

Linux(Ubuntu):搭建GitLab托管代码第12张

见到下面图片表示群组创建成功: 但是并没有任何项目存在群组中

Linux(Ubuntu):搭建GitLab托管代码第13张

然后进行回到首页操作,然后点击左侧的菜单进入群组选项进入某个群组,然后点击新建项目进行项目的创建操作

Linux(Ubuntu):搭建GitLab托管代码第14张

初始化项目(创建项目成功后就会显现下面的图片)

Linux(Ubuntu):搭建GitLab托管代码第15张

我们选择通过增加一个 README 的方式来初始化项目

点击这里的README进行初始化仓库

直接提交修改即可

Linux(Ubuntu):搭建GitLab托管代码第16张

使推送项目

使用 TortoiseGit 克隆项目(推送项目1)

  • 新建一个存放代码仓库的本地文件夹
  • 在文件夹空白处按右键
  • 选择“Git 克隆...”

Linux(Ubuntu):搭建GitLab托管代码第17张

  • 服务项目地址到 URL

Linux(Ubuntu):搭建GitLab托管代码第18张

  • 如果弹出连接信息请选择是

Linux(Ubuntu):搭建GitLab托管代码第19张

  • 成功克隆项目到本地

Linux(Ubuntu):搭建GitLab托管代码第20张

使用 TortoiseGit 推送项目(提交代码)

  • 创建或修改文件(这里的文件为所有文件,包括:代码、图片等)
  • 我们以创建.gitignore过滤配置文件为例,该文件的主要作用为过滤不需要上传的文件,比如:IDE 生成的工程文件、编译后的 class 文件等
  • 在工程目录下,新建.gitignore文件,并填入如下配置:
.gradle
*.sw?
.#*
*#
*~
/build
/code
.classpath
.project
.settings
.metadata
.factorypath
.recommenders
bin
build
target
.factorypath
.springBeans
interpolated*.xml
dependency-reduced-pom.xml
build.log
_site/
.*.md.html
manifest.yml
MANIFEST.MF
settings.xml
activemq-data
overridedb.*
*.iml
*.ipr
*.iws
.idea
.DS_Store
.factorypath
dump.rdb
transaction-logs
**/overlays/
**/logs/
**/temp/
**/classes/
  • 右键呼出菜单,选择“提交 Master...”注意提交的时候还需要填写用户和邮箱

Linux(Ubuntu):搭建GitLab托管代码第21张

  • 点击“全部”并填入“日志信息”

Linux(Ubuntu):搭建GitLab托管代码第22张

  • 点击“提交并推送”

Linux(Ubuntu):搭建GitLab托管代码第23张

  • 成功后的效果图

Linux(Ubuntu):搭建GitLab托管代码第24张

查看 GitLab 确认提交成功

Linux(Ubuntu):搭建GitLab托管代码第25张

生成 SSH KEY(推送项目2)

一般情况在在做持续集成的时候我们会用SSH的方式进行交互的处理,因为我们要让服务器自动拉去gitHub或gitLab上面的代码执行打包处理(不需要使用账户和密码)---这个步骤必须掌握

使用 ssh-keygen 工具生成,位置在 Git 安装目录下,我的是C:Program FilesGitusrin

在windwos系统的cmd中切换到C:Program FilesGitusrin这个目录下,然后输入命令:

ssh-keygen -t rsa -C suchuanqi2008@163.com

执行成功后的效果:

Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
 
C:Program FilesGitusrin>ssh-keygen -t rsa -C "topsale@vip.qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/java/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/java/.ssh/id_rsa.
Your public key has been saved in /c/Users/java/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cVesJKa5VnQNihQOTotXUAIyphsqjb7Z9lqOji2704E topsale@vip.qq.com
The key's randomart image is:
+---[RSA 2048]----+
|  + ..=o=.  .+.  |
| o o + B .+.o.o  |
|o   . + +=o+..   |
|.=   .  oo...    |
|= o     So       |
|oE .    o        |
| .. .. .         |
| o*o+            |
| *B*oo           |
+----[SHA256]-----+
 
C:Program FilesGitusrin>

复制 SSH-KEY 信息到 GitLab

秘钥位置在:C:Usersjava.ssh目录下,找到id_rsa.pub并使用编辑器打开,如:

Linux(Ubuntu):搭建GitLab托管代码第26张

然后复制该秘钥

登录 GitLab,点击“用户头像”-->“设置”-->“SSH 密钥”

Linux(Ubuntu):搭建GitLab托管代码第27张

成功增加密钥后的效果

Linux(Ubuntu):搭建GitLab托管代码第28张

Linux(Ubuntu):搭建GitLab托管代码第29张

这个时候我们上传和下载就不需要再使用密码了,密码和用户暴露给服务器是非常危险的

注意:

Linux(Ubuntu):搭建GitLab托管代码第30张

如果在乌龟的网络上ssh客户端是上面的地址的话就会出现问题,那么我们必须更改SSH客户端的地址把他变为下面的地址,如下图所示:

Linux(Ubuntu):搭建GitLab托管代码第31张

这样就可以完成合并和下载的操作了

免责声明:文章转载自《Linux(Ubuntu):搭建GitLab托管代码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]国外开源免费商城系统电子商务平台IDEA配置GIT下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

开源项目推荐:Qt有关的GitHub/Gitee开源项目

尊重作者,支持原创,如需转载,请附上原地址:https://libaineu2004.blog.csdn.net/article/details/77369837 Q:想请教下Qt5 之后推出的qml与之前qt4的ui 开发方式,有冲突吗?我公司开发桌面程序,是两种方式兼用?还是选择其中一种?A:桌面推荐使用QWidget,触摸式的嵌入式设备推荐使用QML...

linux下导入导出MySQL数据库

一、导出:用mysqldump命令行命令格式mysqldump -u 用户名 -p 数据库名 > 数据库名.sql范例:mysqldump -u root -p abc > abc.sql(导出数据库abc到abc.sql文档)提示输入密码时,输入该数据库用户名的密码。 *************************************...

Linux系统启动U盘制作工具

1、UNetbootin UNetbootin 让你创建 Ubuntu 或者其他 Linux 发行版的可引导 Live U 盘,而无需烧录 CD。 你既能让 UNetbootin 为你下载众多开箱即用的发行版,或者提供你自己的 Linux 的 .iso 文件。支持Linux和windows系统,官网有安装方法。   官方网址:https://unetbo...

Linux中的LVM逻辑卷管理(转载)

这几天把自己的系统重做了一下,把自己电脑的硬盘分区做成了LVM(逻辑卷管理)类型的了。呵呵,以前老是会出现某一个分区的磁盘空间突然不足,然后就得放别的盘里。等东西放的多了用某一件东西时候就非常麻烦,都不知道自己的东西到底在哪个磁盘里面放着呢。。。这下好了,把硬盘做了LVM类型的磁盘就不用操这心了,现在先分少点,等以后不够用了,直接给不够用的磁盘往上加容量就...

Linux系统下查找安装包所在目录的六种方法

想知道Linux系统下安装了哪些软件包,以及软件包安装在哪个目录下,可以用以下6种命令 1. whichwhich命令查找出相关命令是否已经在搜索路径中,例子如下:$which gcc //显示出GNC的C编译器安装在哪个目录返回结果为:/usr/bin/gcc注意:如果which没有找到要找的命令,可以试试whereis,该命令搜索更大的范围的系统目录。...

linux php安装扩展方法 查找配置文件

如何在linux中查看nginx、apache、php、mysql配置文件路径了,如果你接收一个别人配置过的环境,但没留下相关文档。这时该怎么判断找到正确的加载文件路径了。可以通过以下来判断 1、判断apache 首先执行命令找到httpd路径 ps aux | grep httpd 如httpd路径为 /usr/local/apache/bin/http...