在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言:通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢! Docker的优点:
为什么使用Jenkins:
一、安装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 二、Docker 安装Jenkins1. 搜索仓库中的jenkins镜像docker search 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
三、登陆Jenkins的初始化操作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容器,使用 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自动化部署内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论