一、下载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:'(将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版)的更多相关文章

  1. 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s

    总体流程: 在开发机开发代码后提交到gitlab 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry 之后将在k8 ...

  2. 第四十二章 微服务CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)

    上一节完成了"当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建". 目的:本节完成jenkins自动构建之后,自动的将jar包部署到应用 ...

  3. 第四十三章 微服务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 ...

  4. Gradle 1.12用户指南翻译——第三十九章. IDEA 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. “全栈2019”Java第三十九章:构造函数、构造方法、构造器

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

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

    一.下载docker镜像 前提:docker引擎已经安装好. docker pull gitlab/gitlab-ce gitlab是8.13.1版本. 二.启动应用 docker run -d -h ...

  7. 【WPF学习】第三十九章 理解形状

    在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape)——专门用于表示简单的直线.椭圆.矩形以及多变形的一些类.从技术角度看,形状就是所谓的绘图图元(primitive).可组合这些 ...

  8. 第四十一章 微服务CICD(3)- jenkins + gitlab + webhooks + publish-over-ssh(1)

    一.作用 使用webhooks来实现当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建. 二.步骤 1.安装插件 ruby_runtime(Hook插件依赖于 ...

  9. 第三十九章 POSIX信号量与互斥锁

    POSIX信号量相关函数 sem_open 功能: initialize and open a named semaphore 原型: sem_t *sem_open(const char *name ...

随机推荐

  1. nginx配置rewrite

    1. uri  和 url读取区别 区别就是URI定义资源,而URL不单定义这个资源,还定义了如何找到这个资源. 比如说,一个服务器上,到一个文件夹/网页的绝对地址(absolute path)就是U ...

  2. Java加密算法 RSA

    Java加密算法 RSA 2015-06-06 08:44 511人阅读 评论(0) 收藏 举报  分类: JAVA(57)  公钥加密也称为非对称加密.速度慢.加密和解密的钥匙不相同,某一个人持有私 ...

  3. 【转】maven核心,pom.xml详解

    感谢如下博主: http://www.cnblogs.com/qq78292959/p/3711501.html maven核心,pom.xml详解 什么是pom?    pom作为项目对象模型.通过 ...

  4. android学习笔记55——ContentProvider_2

    实现ContentProvider 创建ContentProvider的步骤: 1.开发一个ContentProvider的子类,该子类需要实现增.删.改.查等方法: 2.在AndroidMainfe ...

  5. Eclipse插件SVN配置

    Eclipse插件SVN配置 方法一 打开Eclipse点击[Help]-[Install New Software] 点击右边[Add]-在弹出窗口中输入 Name:svn Location:htt ...

  6. FC 坦克大战 老巢铁墙

    老巢外围铁墙E2A9:AC 80 EFEF80:A5 10 85 45 A5 45 AC D2 E2 用十六进制编辑器打开坦克大战的游戏文件搜索A5 45 F0 25 A5 0B改为AC 80 EF ...

  7. [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子

    Navier-Stokes equations 1 Let $\omega$ be a domain in $\bbR^3$, complement of a compact set $\mathca ...

  8. Linux下date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...

  9. mysql 数据库乱码解决

    mysql 数据库乱码解决, 进入前加入 set names 'utf8'  即可.

  10. app测试与web测试的区别

    1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...