【第三十九章】 微服务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版)的更多相关文章
- 第三十九章 微服务CICD(1)- gitlab搭建与使用(docker版)
一.下载docker镜像 前提:docker引擎已经安装好. docker pull gitlab/gitlab-ce gitlab是8.13.1版本. 二.启动应用 docker run -d -h ...
- 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s
总体流程: 在开发机开发代码后提交到gitlab 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry 之后将在k8 ...
- 第四十二章 微服务CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)
上一节完成了"当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建". 目的:本节完成jenkins自动构建之后,自动的将jar包部署到应用 ...
- 第四十三章 微服务CICD(5)- gitlab + jenkins + docker + dockerregsitry
一.总体流程 部署: 开发机(mac) ip:11.11.11.11 docker:1.12.1 部署机(centos7) ip:10.211.55.4 docker:1.12.3 生产机(cento ...
- Gradle 1.12用户指南翻译——第三十九章. IDEA 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- “全栈2019”Java第三十九章:构造函数、构造方法、构造器
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 【WPF学习】第三十九章 理解形状
在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape)——专门用于表示简单的直线.椭圆.矩形以及多变形的一些类.从技术角度看,形状就是所谓的绘图图元(primitive).可组合这些 ...
- 第四十一章 微服务CICD(3)- jenkins + gitlab + webhooks + publish-over-ssh(1)
一.作用 使用webhooks来实现当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建. 二.步骤 1.安装插件 ruby_runtime(Hook插件依赖于 ...
- 第三十九章 POSIX信号量与互斥锁
POSIX信号量相关函数 sem_open 功能: initialize and open a named semaphore 原型: sem_t *sem_open(const char *name ...
随机推荐
- mysql 数据操作 多表查询 多表连接查询 外链接之左连接 右连接
1.外链接之左连接:优先显示左表全部记录 left join 在内连接的基础上保留左表的记录 即便左表有一条记录和右表没有关系,也把他留下 mysql> select * from empl ...
- dedecms文章页调用地址(当前文章URL)如何操作?
我们在建站时经常会在文末加一个本文地址,那么dedecms文章页如何调用当前文章URL呢?这样做的好处是增加文章的唯一标识,更进一步的做法是在head中加个cannacial标签,告诉搜索引擎url的 ...
- 高性能MySQL中的三星索引
高性能MySQL中的三星索引 我对此提出了深深的疑问: 一星:相关的记录指的是什么??(相关这个词很深奥,“相关部门”是什么部门) 二星:如果建立了B-Tree(B+Tree)索引,数据就有序了.三星 ...
- PHP导出excel时数字变为科学计数的解决方法
在数据导出到excel时数字格式不对,一般分为以下两种情况. 1.excel单元格设置长度不够 解决方法: //在excel.php文件中 $objActSheet = $objPHPExcel-&g ...
- [py]flask实现用户cmdb
人最难做到的就是跟自己学习, 总是学习别人的, 沉淀, 过一段时间忘了刚学到的, 在向别人学习, 而非看看自己的沉淀, 殊不知, 世界上最亲近,最默契的人是自己. 用户cmdb功能概述 之前学flas ...
- Bootstrap下拉单学习
<!DOCTYPE HTML><html><head><link rel="stylesheet" href="/stylesh ...
- Listener—监听器
什么是监听器? 监听器是Web应用程序事件模型的一部分 监听器的作用? 1:Web应用中某些状态发生改变的时候会产生相应的事件: a)servletContext.HttpSession.Servle ...
- mov指令
一.规定 1.立即数不能作为目的操作数,如mov 110H,AX 2.立即数不能直接传给段寄存器,如mov DS,110H 2.两个操作数不能同时为段寄存器,如mov ES,DS 3.两个操作数不能同 ...
- 开发人员必备的几款bug管理工具
Bug是软件开发过程中的“副产品”,也是开发人员最不想见到的状况.如果没有跟踪和梳理各种bug和问题并及时解决,项目就会花费非常多的时间,导致整个项目的重心偏移.如果在产品开发过程中,使用一个合适的B ...
- Javassist
Javassist 实现动态代理 javassist 是一款非常优秀的Java 字节码引擎工具,能够在运行时编译.生成Java Class.