dockergitlab自动化教程(docker+gitlab+jenkins从零搭建自动化部署)
dockergitlab自动化教程
docker+gitlab+jenkins从零搭建自动化部署目录
- 前言:
- 一、安装Docker
- 二、Docker 安装Jenkins
- 1. 搜索仓库中的jenkins镜像
- 2. 通过拉取jenkins镜像到本地images中
- 3. 启动jenkins容器
- 三、登陆Jenkins的初始化操作
- 四、全局工具配置(配置环境)
- 五、安装Maven插件 点击系统管理–插件管理
- 六、新建任务,完成自动化部署
通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢!
Docker的优点:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
结构:客户端→Docker_Host(宿主机)→仓库
三个概念 容器→镜像→仓库
为什么使用Jenkins:
一、安装Docker传统的部署项目,当项目完成后,需要我们自己从代码仓库中拉取代码到本地,完成打包,然后上传到服务器,然后配置项目的运行环境并启动。这样显然有一点的缺陷,我们在开发中存在的一些bug由于不能即时的发现,导致后期修复bug而存在导致连锁效应的风险。而且我们经常修改代码后,需要重新打包,然后上传到服务器,然后运行,当项目很多的时候,这样的一些重复性机械操作导致我们有些力不从心。
而我们使用Jenkins后真正的帮我们实现了自动化部署,当我们代码更新后,push到代码仓库中,我们只需在Jenkins的可视化界面点击构建项目,Jenkins便会根据我们配置的仓库地址自动拉取代码,自动打包,并运行,完成自动化部署。
Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker。
1. 通过 uname -r 命令查看你当前的内核版本
uname -r
2. 使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update
3. 卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5. 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6. 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7. 安装docker
sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
8. 启动并加入开机启动
systemctl start docker //启动docker systemctl enable docker //设置为开机启动
9. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
1. 搜索仓库中的jenkins镜像
docker search jenkins
jenkins 表示你要搜索的镜像名,DESCRIPTION中包含jenkins的也会显示出来
2. 通过拉取jenkins镜像到本地images中
docker pull jenkins/jenkins
注意这里拉取的是jenkins/jenkins版本,因为先前的jenkins版本只有2.60,导致安装jenkins插件失败拉取的时候可以指定版本,例如docker pull java:8 表示拉取的java版本为8; 不指定版本则默认为最新版本 latest
3. 启动jenkins容器
docker run --name myjenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins
–name myjenkins 指定容器NAME为myjenkins
-d 表示后台运行
-p 8081:8080 表示Docker Host(运行Docker的主机)端口 与Docker容器内运行的端口映射,
8081表示DockerHost的端口,8080即容器内的端口; 外部访问8081即可访问到Docker容器的8080端口
jenkins/jenkins 表示启动的镜像为jenkins/jenkins ,查看本地镜像可以通过docker images查看
三、登陆Jenkins的初始化操作说明:
1.容器内的端口外部无法直接访问,因为要配置Docker Host与容器的端口映射,映射可以配置多个;
由于后面需要部署项目,提前把项目的端口号-p 8085:8085配置好,不配置的也可以,后面去修端口映射文件即可。
2.其实我们也可以省略第二步pull操作,直接启动一个容器,Docker会先去本地images中查看是否有这个镜像,如果没有的话会去DockerHub仓库去下载。
1. 访问jenkins界面,例如我虚拟机IP是192.168.199.188 ,输入192.168.199.188:8081,回车显示以下界面
进入安装Jenkins的容器内
docker exec -it myjenkins bash // 进入指定容器,myjenkins表示我们启动容器时给容器指定的名称 cat /var/jenkins_home/secrets/initialAdminPassword` //查看密码,复制密码粘贴到文本框内
操作图示:
2. 安装插件,这里就安装jenkins推荐的插件
点击安装推荐插件:
3. 自动安装中,需要稍等片刻,安装完成点击继续:
4. 创建管理员用户,也可以直接使用admin账户继续:
5. 实例配置 直接保存完成:
6. 开始使用Jenkins:
7. 进入Jenkins主页:
四、全局工具配置(配置环境)
点击系统管理–全局工具配置
1. 配置JDK: 取消自动安装(一般容器内都安装好了JDK环境), 进入docker容器,使用echo $JAVA_HOME
获取jdk安装路径,将路径复制到JAVA_HOME文本框
2. 配置Maven: 指定name,自动安装,点击Save即可
五、安装Maven插件 点击系统管理–插件管理
六、新建任务,完成自动化部署
1. 回到首页,点New 任务,构建一个Maven项目
2. 点击确定,回到首页我们发现多了一个名为SpringBoot_AutoTest1的任务(上面的任务是以前的,不用理会)
3. 点击项目名SpringBoot_AutoTest1 --> 点击配置
3.1 源码管理(配置git仓库地址,Jenkins会从远程仓库拉取代码):
3.2 构建配置(Jenkin拉取代码后会自动执行打包命令):
3.3 配置shell脚本(Jenkins打包完成后,自动执行shell脚本启动项目,实现自动化部署),最后保存即可:
附shell脚本:
#!/bin/bash # #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,... # #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。 #服务名称 SERVER_NAME=SpringBoot_AutotTest #源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。 JAR_NAME=jekins-0.0.1-SNAPSHOT #target打包生成jar包的目录 JAR_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target # 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录 #打包完成之后,把iar包移动到运行jar包的目录 JAR_WORK_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target echo "查询进程id-->$SERVER_NAME" PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'` echo"得到进程ID: $PID" echo"结束进程" for id in $PID do kill -9 $id echo "killed $id" done echo"结束进程完成" #复制jar包到执行目录_ echo" 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH" cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH echo"复 制jar包完成" cd $JAR_WORK_PATH #修改文件权限 chmod 755 $JAR_NAME.jar #前台启动 #java -jar $JAR_NAME.jar #后台启动 BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
到此这篇关于docker+gitlab+jenkins从零搭建自动化部署的文章就介绍到这了,更多相关docker+gitlab+jenkins自动化部署内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker容器的标准使用过程(Docker容器的使用方法简单示例)
- idea生成dockerfile(idea集合docker实现镜像打包一键部署)
- shell监控docker各种状态(如何监控docker容器运行状态 shell 脚本)
- docker日志挂载(docker run -v 挂载数据卷异常,容器状态一直是restarting的解决)
- docker容器测试环境构建(docker容器内安装TensorRT的问题)
- docker如何搭建mysql(docker容器访问宿主机的MySQL操作)
- 查看docker 镜像大小(详解六种减小Docker镜像大小的方法)
- docker停止删除所有容器方法(Docker stop停止/remove删除所有容器)
- docker部署oracle(Docker安装Oracle_11g的方法)
- docker映射端口(Docker初级网络端口映射的配置)
- docker删除多个镜像命令(Docker 彻底删除私有库镜像的操作)
- 如何启动所有docker服务(docker 使用CMD或者ENTRYPOINT命令同时启动多个服务)
- docker redis安装配置(使用docker搭建redis主从的方法步骤)
- docker-compose配置文件(Docker Compose在不同环境的多种安装方式)
- docker中mysql连接命令(docker 如何修改mysql的root密码)
- dockerip访问限制(docker win ping 不通容器 避坑指南)
- 网坛停摆三巨头亏损惨重,费德勒跌幅88 纳达少赚2400万(网坛停摆三巨头亏损惨重)
- Beyond 版本《无人深空》主线任务攻略 阿特拉斯之道(版本无人深空主线任务攻略)
- 全球科技界最有钱大佬TOP 15 你知道几位(全球科技界最有钱大佬TOP)
- 2主力后腰缺阵 泰山队奇兵有望获重用,赛季0出场,迎来中超首秀(泰山队奇兵有望获重用)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
热门推荐
- python中return 类的实例(Python实现Event回调机制的方法)
- pythonmatplotlib绘制立体图形(python3使用matplotlib绘制散点图)
- html5怎么设置左边input(HTML5中input输入框默认提示文字向左向右移动的示例代码)
- ftp服务器的功能(什么是ftp服务器)
- js中Math对象的用法
- javascript基础语法和用法(JavaScript中new操作符的原理示例详解)
- laravel命令控制器怎么设置(Laravel获取当前请求的控制器和方法以及中间件的例子)
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- HTML5 <figure> 、<figcaption>标签
- 云服务器磁盘管理教程(云主机如何用虚拟磁盘扩容?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9