一、部署gitlab

  gitlab部署我采用的是docker的方式,这种方式的优势是方便;之前部署过非docker的gitlab,需要配置安装许多东西,太麻烦,还是docker部署方便,从官网pull下来,直接已启就ok了;

  官方gitlab容器链接:https://docs.gitlab.com/omnibus/docker/README.html

  1、export GITLAB_HOME=/usr/local/gitlab 先配置临时环境变量,这步可省略,但是第二步要写绝对路径;
  2、docker run --detach --publish 80:80 --hostname 192.168.31.120 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ee:latest
  注意:
  1)、这个地方如果有域名就--hostname 指定域名(最好是能现网解析的域名),如果不指定则默认是容器的CONTAINER ID;并且在gitlab运行起来的时候,仓库地址会是CONTAINER ID;可以通过hosts绑定的方式,但是非常麻烦;
  2)、--hostname指定的name配置存放在gitlab.xml;第一次启动的时候我没有指定hostname,发现仓库地址是container id,本来想直接在配置文件中修改了,但是发现不生效,所以就重新启动了个容器;
  3)、端口映射最好也映射成80,我第一次映射的8080,每次clone地址的时候都需要将端口添加上;
  4)、如果没有域名的最好启动容器的时候直接将hostname写成ip地址,注意不要带非80端口(1.1.1.1:8080),否则,容器内部的端口就是8080,而非80;
  5)、只是在运行容器的时候我发现了这些问题,如果非容器启动gitlab;上述问题可以通过修改配置文件解决;

  3、创建组--->创建project--->创建用户

    gitlab用户组的5种权限:

      Guest:可以创建按issue,发表评论,不能读写版本库;

      Reporter:可以克隆代码,不能提交,QA/PM可以赋予这个权限;

      Developer:可以克隆代码,开发,提交,push,普通开发可以赋予这个权限;

      Maintainer:可以创建项目,添加tag,保护分支,添加项目成员,编辑项目,核心开发可以赋予这个权限;

      Owner:可以设置项目访问权限,删除项目,迁移项目,管理组成员,开发组长可以赋予这个权限;

二、idea向gitlab上传代码

  1、在vcs中开启git功能
  2、右击项目--->git--->commint Directory 提交代码到本地仓库
  3、右击项目--->git--->add--->(项目备注)
  4、右击项目--->git--->Repository--->Remotes 添加gitlab project地址,可以在gitlab上clone http地址;
  5、右击项目--->git--->Repository--->Push

三、jenkins连接gitlab

  1、安装jenkins
    1)、通过rpm包安装,大部分中文界面,但是版本不是最新的;(我采用的这种方式)
    2)、通过tomcat部署jenkins,可以从官网下最新的;
    3)、在部署jenkins的这台机器上安装java,(我用的1.8.0_211);
    4)、在部署jenkins的这台机器上安装git以及maven(从官网下最新版即可);

  2、配置jenkins

    1)、全局工具配置:系统管理(Manage Jenkins)--->全局工具配置(Global Tool Configuration)--->配置java/git/maven的路径

               

      java和maven都是工作路径,只有git的配置是git的可执行程序;

    2)、系统配置:系统管理(Manage Jenkins)--->系统配置(Configure System)--->全局属性--->勾选环境变量(Environment variables)

      

       其中JAVA_HOME/MAVEN_HOME的键可以定义,值都是工作目录;注意:PATH+EXTRA这是固定写法,值引用maven的键,定义maven的可执行文件的路径;该地方不配置在构建的时候会提示找不到mvn命令;

  3、创建jenkins任务并配置

      

     

      Credentials可以在jenkins任务配置的时候添加,也可以在系统管理(Manage Jenkins)--->Manage Credenials中添加全局域;这个地方我选择的是账户密码的方式,这地方的账户密码是gitlib中有 该项目权限的用户的账户密码;

    注意:分支的配置,要根据实际情况来配置,否则在构建的时候会报错;(Couldn`t find any revision to build,Verify the repository and branch configuration for this job);构建日志中会有体现;

  4、构建工程

    

    我总共构建了8次,失败了7次,可以点进去构建历史有日志看具体报错解决问题;

    查看构建日志:

    

   

gitlab+jenkins学习笔记的更多相关文章

  1. Jenkins 学习笔记

    Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...

  2. Gitlab+Jenkins学习目录

    Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...

  3. Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  4. Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布

    一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...

  5. Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布

    思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...

  6. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat

    一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  7. jenkins学习笔记

    Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能.本系列博客以 windows 10 环境为例 1 安装 ...

  8. Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的

    发布拓扑 1. 拓扑图 2. 流程说明: Git 插件从 Git Server 上面拉取源代码. Maven 插件将源代码安装我们设定的指令进行编译打包,存放于项目的 WorkSpace. Publi ...

  9. Jenkins 学习笔记(二):很简单的发布一次

    发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...

随机推荐

  1. Apache Shiro 漏洞汇总

    Apache Shiro 漏洞汇总 以下是我个人通过收集信息收集起来的一些Apache Shiro漏洞信息,这些漏洞的poc都是公开的,利用起来也是比较简单 Apache Shiro是什么东西: Ap ...

  2. bean的自动装配,使用注解开发,使用java的方式配置Spring

    bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bean装配属性! 在Spring中有三种装配的方式 在xml中显示的配置 在java中 ...

  3. hashlib加密模块和logging模块,购物车项目

    hashlib加密模块 简介 hashlib模块是一个提供了字符串加密功能的模块,包含MD5和SHA的加密算法.具体的加密支持有: MD5,sha1,sha224,sha256, sha384, sh ...

  4. 层层剖析一次 HTTP POST 请求事故

    vivo 互联网服务器团队- Wei Ling 本文主要讲述的是如何根据公司网络架构和业务特点,锁定正常请求被误判为跨域的原因并解决. 一.问题描述 某一个业务后台在表单提交的时候,报跨域错误,具体如 ...

  5. Java 线程常用操作

    继Java线程生命周期继续学习Java线程其他常用操作 线程的常用操作 设置线程名字:setName() 获取线程名称:getName() 线程唯一Id:getId() // 自定义线程名称 Stri ...

  6. 超级简单!CentOS-8 安装 MySQL 8.0,比喝水还简单

    中国人不骗中国人 果然是系统和MySQL的版本越高安装越便利了 在阿里云的 CentOS-8 比喝开水还简单的安装 MySQL 8.0,开始~ 1.以 root 用户通过 CentOS 软件包管理器来 ...

  7. Blazor和Vue对比学习(基础1.9):表单输入绑定和验证,VeeValidate和EditFrom

    这是基础部分的最后一章,内容比较简单,算是为基础部分来个HappyEnding.我们分三个部分来学习: 表单输入绑定 Vue的表单验证:VeeValidate Blazor的表单验证:EditForm ...

  8. 关于position的relative和absolute分别是相对于谁进行定位的

    position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP.RIGHT.BOTTOM.LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始 ...

  9. Spring 源码(17)Spring Bean的创建过程(8)Bean的初始化

    知识回顾 Bean的创建过程会经历getBean,doGetBean,createBean,doCreateBean,然后Bean的创建又会经历实例化,属性填充,初始化. 在实例化createInst ...

  10. Redis - 读写模式 - 缓存一致性

    Cache Aside Pattern(旁路缓存模式) 读:从cache中读取数据,若读取到则直接返回:cache中不存在则去database中读取,然后更新到cache. 写:先更新database ...