第三十九章 微服务CICD(1)- gitlab搭建与使用(docker版)

2024-02-25 18:58

本文主要是介绍第三十九章 微服务CICD(1)- gitlab搭建与使用(docker版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、下载docker镜像

前提:docker引擎已经安装好。

  • docker pull gitlab/gitlab-ce

 gitlab是8.13.1版本。

二、启动应用

  • docker run -d -h gitlab.zhaojigang.com -p 80:80 -v /etc/gitlab/:/etc/gitlab/ -v /var/log/gitlab/:/var/log/gitlab/ -v /var/opt/gitlab/:/var/opt/gitlab/ --name gitlab docker.io/gitlab/gitlab-ce

说明:本次启用是为了生成配置文件。

  • /etc/gitlab/:配置文件所在的目录
  • /var/log/gitlab:日志所在目录
  • /var/opt/gitlab:数据所在目录

 

三、修改配置文件

vi /etc/gitlab/gitlab.rb

  • external_url 'http://gitlab.zhaojigang.com:8929'(将http端口设置为8929而不是默认的80)

 

四、指定端口启动

  • docker run -d -h gitlab.zhaojigang.com -p 8929:8929 -p 2289:22 -v /etc/gitlab/:/etc/gitlab/ -v /var/log/gitlab/:/var/log/gitlab/ -v /var/opt/gitlab/:/var/opt/gitlab/ --name gitlab docker.io/gitlab/gitlab-ce

说明:

  • -h gitlab.zhaojigang.com
    • hostname:以gitlab.zhaojigang.com作为域名访问gitlab,需要在DNS中进行域名映射(或者在访问机器/etc/hosts中配置域名映射)
  • -p 8929:8929
    • 8929:http端口
  • -p 2289:22
    • 22:ssh端口,ssh端口不要随便替换,代价会比较大,这样之后,发现clone是可以的,但是push不行

注意:如果有ipv4无法forward的问题,先使用:

  • sysctl -w net.ipv4.ip_forward=1 

 

五、浏览器访问(直接使用ip不使用上边指定的hostname

  • sudo vi /etc/hosts,添加如下一行映射
10.211.55.3     gitlab.zhaojigang.com
  • http://10.211.55.3:8929/(或者http://gitlab.zhaojigang.com:8929/)
    • 其中,10.211.55.3是gitlab所在机器的地址

在这里,创建密码(eg.123456),之后使用用户名(root)和密码(123456)登陆。

 

六、新建group

说明:将所有的微服务代码存放在services组下,该组的可见性是Internal(可自己指定)

  • private:该组下的所有项目只能被该组的成员看到
  • internal:所有登陆的用户都可以看到该组下的所有项目

创建group失败!!!因为services是保留字,所以不能做组名。改成service是可以的。

  

 

七、新建project

 

八、将原有的项目(myframework)push到远程master

  • cd Desktop/microservice/myframework/
  • git init
  • git remote add origin http://gitlab.zhaojigang.com:8929/service/myframework.git
  • git add --all
  • git commit -m"init"
  • git push origin HEAD:master

此时,将产生2个分支,一个本地master,一个远程master。

 

九、创建dev分支

1、在如上页面创建远程dev分支(该分支根据master创建)。

2、本地创建dev分支

  • git checkout -b dev

此时"git branch -a"只能看到三个分支,本地dev、master以及远程master。

修改中一些代码后,

3、本地dev追踪远程dev

  • git add --all
  • git commit -m"xxx"
  • git push origin HEAD:dev

此时"git branch -a"就能看到4个分支,本地dev、master以及远程dev、master。

4、将远程dev分支的代码merge到远程master分支上‘

附:ssh key配置

在本机(git客户端安装的机器上)执行

  • ssh-keygen -t rsa -C "admin@example.com"

之后将生成的公钥(cat ~/.ssh/id_rsa.pub)贴到gitlab的ssh key框中即可。

 

遗留问题:

  • host DNS解析
    • 采用在访问机器配置/etc/hosts映射关系的方式解决
  • .gitignore不起作用
    • 解决方案:http://www.pfeng.org/archives/840

这篇关于第三十九章 微服务CICD(1)- gitlab搭建与使用(docker版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746400

相关文章

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数