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自动构建,并发送测试报告
再次整体验证,框架搭建完整流程通了!!完美!
——————————————————————————————————————————————————————————————————————————————