docker搭建gitlab服务详细教程

目录

-搭建gitlab容器

-安装git客户端

-pycharm关联gitlab

-jenkins安装gitlab插件,设置git全局变量

-jenkins在源代码管理设置gitlab认证

-设置gitlab认证jenkins出发权限

  -主菜单设置中设置network-outband request

  -在gitlab工程设置webhook

  -使用pycharm直接提交脚本-发送jenkins邮件

简介

Glitlab 比较占用内存,官方建议最低配置为 2核4G。我的服务器刚刚好是2核4G,但是还装了 Docker 跑一些其他服务,所以以防万一,还是选择在本地的虚拟机中进行安装。

虚拟机的安装, CentOS 系统的安装以及 Docker 环境的配置就不再演示,网上有很多非常详细的教程。我们直接上手安装 Gitlab 。工作原理如图所示:

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

前提:

搭建安装好虚拟机Centos(版本自己选择),我的是centos 7,搭建好docker。

注:gitlab比较大,启动很慢,尤其是jenkins和gitlab同时启动时一般电脑操作gitlab和jenkins会比较卡、慢,需要耐心等待,占用虚拟机内存和cpu比较大!

搭建CentOS设置的内存过小导致的,不过物理机本身内存不高,虚拟机内存不也能设置太大,所以运行gitlab导致因内存低运行慢。我的物理机内存8G,设置为4G。电脑内存和cpu负载就比较大。所以,根据自己物理机实际情况设置虚拟机内存。

 

查看自己虚拟机内存:

关闭CentOS客户机,首页就展示CentOS系统内存信息

 

 修改方法:

 

 双击进入就可以编辑了。自行设置为合适的内存:

 

 

然后搭建gitlab吧!!!!

 

1、搭建gitlab容器,安装 Gitlab

现在开始使用 Docker 安装 Gitlab。

下载镜像

访问 Docker Hub 查看 gitlab 镜像:下载最新的镜像:

----搜索gitlab,找到gitlab/gitlab-ce,下载这个

1 docker search gitlab/gitlab

这是 Gitlab 社区版的镜像,镜像比较大1G-2G左右,下载需要一定时间。查看下载好的镜像:

1 docker pull gitlab/gitlab-ce

可能会是失败:

 --------------

error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n"

查找解决方案1:

1、docker login      ----报错还是失败,报错原因不同了,再次尝试下载还是timeout,docker login是需要注册的:

需要先在 Docker Hub 中注册一个账号才能在 Linux 登录哦 :官网

https://hub.docker.com/ ,输入账号密码,邮箱验证即可获得docker的账号和密码

 2、解决方案2

使用手机流量下载的-^……^-,成功了。

 3、方案3,使用FQ网络,公司内网或许下载更流畅,本人没有尝试

---------------------

1 docker images

 挂载数据目录

如果要修改一个容器的配置或者查看它的日志,需要进入到容器里面,不是很方便。所以通常会给容器挂载数据卷,将容器内的重要目录,映射到宿主机中。

我们需要为 Gitlab 容器设置三个数据卷,也就需要在 Centos 系统中新建三个目录:srv目录下新建一个目录gitlab,然后再哎gitlab下新建config/logs/data三个映射配置目录

1 mkdir -p /srv/gitlab    
2 mkdir -p /srv/gitlab/config # 映射到 Glitlab 容器中的配置目录
3 mkdir -p /srv/gitlab/logs # 映射到 Glitlab 容器中的日志目录
4 mkdir -p /srv/gitlab/data # 映射到 Glitlab 容器中的数据目录   

 创建守护进程并运行容器

把它复制到文本,修改IP地址,再运行

cd /srv/gitlab

docker run --detach \
 --hostname=宿主机ip \   填写自己的宿主机IP,我的是192.168.xxx.xxx
 --publish 443:443 --publish 9001:80 --publish 8022:22 \
 --name=mygitlab \
 --restart=always \
 --volume /srv/gitlab/config:/etc/gitlab \
 --volume /srv/gitlab/logs:/var/log/gitlab \
 --volume /srv/gitlab/data:/var/opt/gitlab \
 --volume /etc/localtime:/etc/localtime:ro\
 --privileged=true \
 gitlab/gitlab-ce:latest

或者:

docker run -di -p 443:443 -p 9001:80 -p 8022:22 --hostname=192.168.xx.xxx --name=mygitlab --restart=always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab --volume /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce

-------------------

--detach   : 简写 “-d ”  后台运行容器

--hostname  :指定hostname参数,即:宿主机ip

--restart always  :当容器启动失败时总是尝试自动重启

--publish  :简写  -p  端口映射   宿主机端口:容器端口。gitlab 需要暴露三个端口,443 和 80 是访问 Gitlab 的 Web 页面,22 是使用 Git 管理仓库时用到。

--name  :容器命名

--volume  :挂载目录    宿主机目录:容器目录

--privileged:指定容器是否为特权容器,特权容器拥有所有的权限,默认为 false。

-------------------------------------

 但是 Gitlab 比较大,容器启动时稍微慢一些。可以执行下面的命令查看下 gitlab 容器的日志:

1 docker logs -f gitlab
  • -f:在命令行中查看实时日志。默认情况下日志是输出文件中的。

容器启动成功后,Windows 本地机器就能访问了。

打开浏览器访问 http://ip:端口号

可能开始登录报502,稍等一段时间,docker访问请求比较慢

登录

 需要账户和密码:默认账户名:root  初始密码需要从容器查看如下:

使用初始密码登录

第一次访问 Gitlab 需要重置 root 账号的密码。

前面启动 Gitlab 容器之前,设置了它的配置文件的数据卷,来到此目录:

1 直接用:find / -name initial_root_password  然后移动到该目录或者直接查看

有一个 initial_root_password 文件,root 用户的初始密码密码就在此文件中:

1 cat /etc/gitlab/initial_root_password

 

 

 登录成功!!

如果仍然提示密码错误:尝试重置初始密码

方法如下:

1:进入容器

docker exec -it -uroot gitlab /bin/bash

2.进入gitlab目录

cd /opt/gitlab/bin

3.执行命令

gitlab-rails console

执行这步命令耗时可能较长,稍微等一会,待出现下面提示可继续进行操作

4.执行命令

u=User.where(id:1).first

5.执行命令–修改密码

u.password='12345678'

6.执行命令–确认密码

u.password_confirmation='12345678'

7.执行命令–保存修改

u.save

8.结束

当提示true后说明修改成功,可进入gitlab登录页面使用root/12345678 进行登录!

 9、退出

exit

重新登录页面:http://ip:端口号,基本能登录成功  

修改语言

系统默认为英语,修改为中文。

点击右上角的用户头像,选择“Preferences”偏好设置:

 

来到本地化设置,选择中文,并保存配置。可以看到,目前英文做了 100% 的翻译,中文做到了 95% 的翻译,不熟悉英文的朋友使用起来也没有任何问题了。

 

刷新浏览器,就切换为中文界面了。

 

修改默认密码
Root 用户的初始密码在配置文件中只保存 24 小时,太长也不方便记忆。所以登录后先修改默认的初始密码。

点击右上角头像,选择偏好设置,然后选择左侧菜单栏的密码选项,完成密码的修改。新密码的长度需要不少于8个字符。

 

然后保存密码,重新登录 Gitlab。

测试:上传一个仓库

基本的配置差不多了,现在上传本地的一个仓库到 Gitlab 中测试下好不好用。

创建项目:

 

 

 

 

 

 程仓库完成创建。。。接下来需要本地仓库的搭建↓↓↓

————————————————————————————————————

2、安装git客户端

官网下载链接如下:https://git-scm.com/downloads/

 详细安装步骤

  1、开始安装

   2、根据自己的情况,选择程序的安装目录。

   3、如下图Next,选择组件

    (1)图标组件(Addition icons) : 选择是否创建桌面快捷方式。
    (2)桌面浏览(Windows Explorer integration) : 浏览源码的方法,使用bash 或者 使用Git GUI工具。
    (3)关联配置文件 : 是否关联 git 配置文件, 该配置文件主要显示文本编辑器的样式。
    (4)关联shell脚本文件 : 是否关联Bash命令行执行的脚本文件。
    (5)使用TrueType编码 : 在命令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码。
  4.选择完之后,点击“Next”,显示截图如下

   5、选择编辑器,默认为vim

   6、选择第一个默认使用git

     (1)检查出windows格式转换为unix格式:将windows格式的换行转为unix格式的换行再进行提交。
     (2)检查出原来格式转为unix格式:不管什么格式的,一律转为unix格式的换行再进行提交。
    (3)不进行格式转换 : 不进行转换,检查出什么,就提交什么

  8、配置行位结束符,选择默认

    (1)检查出windows格式转换为unix格式:将windows格式的换行转为unix格式的换行再进行提交。
    (2)检查出原来格式转为unix格式:不管什么格式的,一律转为unix格式的换行再进行提交。
    (3)不进行格式转换 : 不进行转换,检查出什么,就提交什么。

   9、配置终端仿真

   10、默认,第一个

   11、额外配置

  12、实验配置选项

   13、等待安装完成

   14、任意位置鼠标右键出现 Git Bash 安装成功

   15、本地环境变量配置

    1、选择我的电脑,右键选择属性,选择高级系统设置
    2、选择环境变量

 

  3、编辑Path变量

     任意位置打开git Bash Here,输入where git(查找git安装路径)

 

     去安装路径找到这个文件位置,添加到变量中,我的是D:\Program Files\Git\bin

 

  4、cmd输入:git -v查看是否安装成功;出现如下响应说明环境变量配置成功了

2、本地仓库创建 

  1、在自己电脑D盘新建一个文件夹,命名:mylocal。右键打开git bash  查看git版本,git --version

   2、设置mylocal文件夹的环境配置,配置全局用户名和邮箱

    1、在命令窗口输入命令:

1 git config --global user.name “XXXX”  注:XXXX为自定义命名,如:ikun   

    2.配置邮箱: 在命令窗口输入命令:

1 git config --global user.email “xiaoming@huawei.com” 注:邮箱为个人邮箱

    3.检查配置: 在命令窗口输入命令: git config –l 查看上面的配置是否正确

1  git config –l 

 

    4、建立本地仓库,初始化,会在本地文件夹自动创建一个.git的文件夹

1 git init 

 ————如果看不到,打开盘面的设置“显示隐藏文件夹”就可以看到初始化.git文件夹

   

    5、克隆远程仓库,默认是80,如果修改过端口,记得带上修改后的端口

1 git clone 远程仓库url  (加上端口号我们的是9001)         

远程仓库url:

gitlab网页-》克隆-》选择http克隆-》复制(手动加上端口号)

 

**********如果远程仓库的账户和密码输入错误,下次连都连不上************

 

 克隆过程会弹窗输入gitlab账户密码  

执行完成,在本地仓库的文件夹下,clone生成远程仓库文件夹

————————————————————————————————————————————————————————————————————————————————————

通过pycharm关联也可以克隆远程仓库,然后实现直接提交代码,如下

3、pycharm关联gitlab

  6、使用pycharm关联gitlab--推送项目工程代码

打开pycharm。依次点击 文件-————>关闭项目————>"从VSC获取"

————>打开gitlab我的远程仓库,————>克隆 ————>复制远程仓库地址:选择http克隆

————>粘贴到pycharm的远程仓库地址,加上修改后的端口号,不然配置不成功,无法访问

 成功登录连接的pycharm界面;远程仓库克隆到本地盘生成一个文件夹。

 将本地项目文件夹复制到克隆的远程仓库文件夹:pycharm中项目就能看到了

 选择整个远程仓库项目   ————>右键  ————> GIT   ————>提交目录,打开了提交窗口

勾选全部变更列表,填写提交信息,点击提交并推送

然后点击:推送

 

查看远程参仓库项目代码提交情况,已经提交成功:

此过程就是:add——>commit——>push, 实现了本地代码的提交到远程仓库

 

上述实现了pycharm提交自动化代码-》gitlab版本管理仓库,接下来实现gitlab 出发执行自动化代码到发出报告↓↓↓↓

————————————————————————————————————————————————————————————————————————

4、jenkins安装gitlab插件,设置git全局变量

1、jenkins安装gitlab插件

1.确保jenkins容器安装了git,验证:

进入jenkins

1 docker exce -it -uroot 容器名/ID /bin/bash

验证是否git安装完成:

1 git --version

查找git 的路径:

1 which git

 在jenkins配置git 全局环境变量:

顺便把allure也配置了

查找allure 的路径:

find / -name allure


把路径粘贴到URL处

 

 

 应用-》保存

______________________________________________________________________________

5、jenkins在源代码管理设置gitlab认证

在jenkins中配置:打开jenkins——>项目-——》源码管理——》jenkins认证添加gitlab的账户和密码-》填写远程仓库密码——》保存

分支确定,gitlab使用的是main

往下滑

————————————————————————————————————————————————————————————————————————————

6、设置gitlab认证jenkins触发权限

  1.主菜单设置中设置network-outband request

  2.在gitlab工程设置webhook

 触发器勾选了Build when a change is pushed ……后,下方的高级设置需要token:复制回调地址

 复制下来备用的:

回调地址:http://192.168.65.129:8080/project/delivery_system  (根据你自己的地址)

生成的token:276bac05a5d642fec1b2551d40306232    (根据你自己生成的token)

由于Gitlab 10.6 版本以后为了安全,默认不允许向本地网络发送webhook请求,可以修改默认值!

打开gitlab——》左上角菜单 ——》管理员身份进入 ——》设置-——》网络——》出站请求-》勾选允许对本地网络的请求-——》保存

打开gitlab,进入项目库——> 设置——>webhooks  ————>分别粘贴到webhooks的url和token框,选择触发条件:推送事件、

 把jenkins生成的回调地址和令牌填写在webhook的url和令牌里

 添加webhooks成功后,就可以测试环境了

选择推送事件验证

 

 注意!!!:可能会构建失败提示:

ERROR: Couldn‘t find any revision to build. Verify the repository and branch ..

 原因:Jenkins调用git时用了默认的*/master,而gitlab默认使用的是main,打开工贸处配置文件查询如下: 上一步骤没有修改master为main,修改玩再验证即可。

 

 jenkins就可以构建并执行代码发布报告!!!!!

  3.使用pycharm直接提交脚本到远程仓库-触发jenkins自动构建,并发送测试报告

 再次整体验证,框架搭建完整流程通了!!完美!

—————————————————————————————————————————————————————————————————————————————— 

 

 

posted @ 2023-03-06 14:06  会飞的鱼Fly  阅读(9105)  评论(0编辑  收藏  举报