使用Jenkins+Docker+Gitlab+Maven搭建持续集成环境
继使用Docker搭建Gitlab后
大致的步骤如下:
- 开发人员通过IDE工具(IntelliJ IDEA)将代码推送到gitlab。
- jenkins从gitlab中获取到源码,并使用maven编译、打包、(下一章节介绍)自动构建镜像。
- jenkins在构建脚本中调用docker命令将构建好的镜像push到本地Docker Registry.并启动相应的容器。(下一章节介绍)
一、使用IntelliJ IDEA 将项目发布(提交)到GitLab
(1)本地下载并安装配置Git客户端,并在idea配置本地git。
官方下载地址为:https://git-scm.com/download/win,下载完之后,双击安装,全部选择默认。
(2)Git初始化及仓库创建和操作
Git安装之后需要进行一些基本信息设置(需要先注册Github)
a、设置用户名:git config -- global user.name '你再github上注册的用户名';
b、设置用户邮箱:git config -- global user.email 'github注册时候的邮箱';
注意:该配置会在github主页上显示谁提交了该文件
c、配置ok之后,我们用如下命令来看看是否配置成功:git config --list
注意:git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这 个配置,当然你也可以对某个仓库指定不同的用户名和邮箱。
(3)在idea 配置Git客户端
file->settings->version control->git
(4)idea本地将本地现有的项目和gitlab进行管理并提交到线上
在idea的菜单项选择 VCS->Import into Version Control->Create Git Repository
出现一个弹出框,选择你要提交的项目的文件夹
如果出现弹出框 ,点击确定。默认是直接定位到当前项目文件所在的磁盘目录,一般git初始化就在当前项目的根目录,不需要修改路径,直接点击OK确定即可。
init完成之后,可以看到原本的项目文件名变成了红色了,红色在idea的git版本表示未add的文件,同时在系统资源管理中打开项目的磁盘文件目录,会发现一个.git的隐藏文件,这个文件就git的配置和仓库文件。
在回到idea项目中,点击VCS》Git》Add添加当前项目下的文件,添加完成之后,之前的红色文件名变成了绿色了,表示已经Add成功,但还没有commit。
注意:如果有的文件还是红色,按以下处理把你需要提交的内容添加vcs
继续操作,VCS》Git》Commit File,然后在提交创建填写提交注释说明
提交完成之后,只是提交到本地仓库,这个时候还没有同步到远程的gitlab服务上,需要push操作,VCS》Git》Push
然后通过网页的方式登录gitlab服务,创建一个空的project,然后在如图所示的位置复制仓库地址
在本地通过git shell (可以安装git for window) 进入到项目目录 执行 以下命令:
# 给项目设置远程远程仓库 #
git remote add origin http://gitlab.ipzao.com/root/test.git
# 抓取远程仓库数据,并自动合并远程分支 #
git pull origin master
# 更新本地数据到gitlab #
git push origin master
选中项目,先git->commitFile,然后操作git->repository->push 可以push代码到远程gitlab上了,push完成之后会提示push successful
二、安装jenkins
1. 拉取jenkins镜像
docker pull jenkinsci/jenkins
2. 新建jenkins工作目录
cd apps
mkdir jenkins
cd jenkins
3. 生成启动文件 jenkins-start.sh
cat <<EOF > jenkins-start.sh
#!/bin/bash
HOST_NAME=jenkins.ipzao.com
GITLAB_DIR=`pwd`
docker stop jenkins
docker rm jenkins
docker run -d \
-p 38080:8080 \
-p 50000:50000 \
--name jenkins \
--link gitlab:gitlab.ipzao.com \
-u root \
-v /apps/ipzao/jenkins:/var/jenkins_home \
jenkinsci/jenkins:latest
EOF
使用docker命令运行容器,然后开启38080端口,并启动jenkins容器。
其中8080端口是jenkins的端口,38080是映射宿主机的端口,50000端口是master和slave通信端口.以root用户来启动容器,同时通过配置--link连接gitlab,因为要与gitlab容器通讯下载代码。
4. 运行 jenkins-start.sh 启动jenkins
sh jenkins-start.sh
jenkins 启动后,可通过 docker logs -f 容器实例Id 查看日志。
容器实例Id 查询 docker ps
打开浏览器http://ip:38080/访问跳转到解锁jenkins页面。
在服务器上以下执行命令查看密码
由于之前启动jenkins容器时我们做了目录映射
-v /apps/ipzao/jenkins:/var/jenkins_home,所以要将执行命令改为:
cat /apps/ipzao/jenkins/secrets/initialAdminPassword
在解锁页面上输入上述密码,继续进入以下页面:
建议选择安装推荐的插件,基本上一些常用的插件都会被安装,安装过程如图:
安装完后进入以下页面:
单击开始使用Jenkins按钮进入jenkins系统,点击左侧菜单中的"系统管理"进入Jenkins管理模块,查看系统设置:
主目录:是存放Jenkins所有的文件的,工作空间根目录和构建记录目录默认都是在Jenkins主目录下,这个设置一般不用进行变更。
执行者数量:可以并发构建的数量。
标记:用来记录这个机器的名称。
用法:设置这个节点的执行策略(包括尽可能使用这个节点和只允许绑定到这台机器的job。
生成前等待时间:这个时间为构建开始前的等待时间。
scm签出重试次数:使用svn或者git拉取代码失败重试的次数。
工程命名限制:限制项目命名,勾选后可以看到具体设置,可以设置为默认或者使用正则表达式进行限制。
全局属性
工具位置:设置全局工具,可以把需要的工具都在这里进行配置,比如maven,ant,jdk等。
环境变量:设置全局变量,在这里定义的全局变量可以在构建或者发送邮件时引用。
设置时间格式
管理监控默认选中所有
jenkins location
jenkins url:设置jenkins的url(发送邮件引用jenkins的地址会取这个值,如果设错了,邮件的连接就会打不开)。
系统管理员邮件地址:管理员的邮件地址(在构建需要发送邮件时,会用到这个邮件地址)。
插件管理:进入全局工具配置 选择可选插件板块,安装并配置maven插件,如果缺少Maven Integration Plugin插件,在创建job时,不会有新建一个maven项目选项。
5. 创建一个构建任务
输入项目名称test,选中构建一个多配置项目点击确定按钮进入项目配置页面:
在源码管理板块中选择git并在repository url填写git仓库名称,但此时会报错:
通过错误提示可知:我们所填入的URL是需要身份认证的,可单击Credentials下拉框右侧的Add按钮,并选择Jenkins选项,弹出身份认证信息对话框:
上面填写的是gitlab的用户名密码验证,添加完后需要选中它,这个时候可以看到已经不报错了。
在构建板块中配置maven:
添加构建后操作:
点击增加构建后操作步骤,选择归档成品,在文本框中输入需要存档的文件路径:**/target/*.jar。
单击保存回到主界面
单击左侧菜单的立即构建并在控制台输出中查看构建日志:
小球图标表示构建状态:蓝色表示构建成功,但目的是搭建一个持续集成的环境,在开发阶段我们会不断的推送代码到gitlab,所以我们需要利用jenkins来帮我们实现自动构建发布(下一章节介绍)。
使用Jenkins+Docker+Gitlab+Maven搭建持续集成环境的更多相关文章
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- [转] 基于Gitlab CI搭建持续集成环境
[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...
- Jenkins+ANT+SVN快速搭建持续集成环境
伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...
- Docker+Jenkins+Maven+SVN搭建持续集成环境
Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...
随机推荐
- day14_7.16 模块
一.模块 1.什么是模块? 模块就是一系列功能的结合体. 模块的三种来源: 1.内置的,也就是python解释器自带的,可以直接导入 2.第三方的,需要下载的 3.自定义的,自己写的模块 模块的四种表 ...
- Centos 安装Django2.1
一.环境准备 1.1 服务器系统 Centos7 1.2.所需工具 python3(Django 2.0 版本是基于python3 版本,故而安装时需安装python3) Setuptools(> ...
- MyBatis 插入记录同时获取主键
MyBatis 插入记录同时获取主键 MyBatis 插入记录同时获取主键的系统界面 useGeneratedKeys 属性 keyProperty 属性 keyColumn 属性 selectKey ...
- 处理海量数据的grep、cut、awk、sed 命令
grep.cut.awk.sed 常常应用在查找日志.数据.输出结果等等,并对我们想要的数据进行提取. 通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取 处理海量数据之grep命令 ...
- SpringBoot整合FastDFS实现图片的上传
文件的上传和预览在web开发领域是随处可见,存储的方式有很多,本文采用阿里巴巴余庆大神开发的FastDFS进行文件的存储,FastDFS是一个分布式文件存储系统,可以看我上一篇博文,有安装和配置教程 ...
- linux c 学习 GUN glibc 信息查看
gun glibc 信息查看方法 方式 共享库作为可执行文件,默认位置可能为/lib/libc.so.6信息如下: GNU C Library (GNU libc) stable release ...
- ABP 下载源码报错
ASP.NET Boilerplate 下载地址应该是这个:https://github.com/aspnetboilerplate/aspnetboilerplate/tree/v1.5.2 下载的 ...
- Tomcat服务部署与Nginx负载均衡配置
一.中间键产品介绍 目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互 ...
- 关于对STL容器重载运算符的问题
注意:下文中vector数组指的是每个数组元素都是一个vector的数组 大部分有序STL容器都重载了小于号,且比较方式是对容器中元素进行字典序比较. 此时如果你写\(bool\ operator&l ...
- 1,[VS入门教程] 使用Visual Studio写c语言 入门与技巧精品文~~~~下载安装篇
Microsoft Visual Studio是微软(俗称巨硬)公司出品的强大IDE(Integrated Development Environment 集成开发环境),功能强大齐全,界面舒服之类的 ...