基于Docker与Jenkins实现自动化部署的原理解析

原理:Jenkins构建(开发提交代码到代码管理平台),Jenkins处理(Jenkins获取远程代码,自动将源代码实现打包,执行shell脚本启动)。

Linux安装Docker

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

aliyun配置镜像加速器

配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://r27gglie.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

基于Docker安装Jenkins环境

1、使用docker安装jenkins

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

2、进入到docker容器查看密钥
docker exec -it dfe5e689b6c9 /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

3、打开8080网页并输入密钥
970cbd92daba4a54ad593ff4c44449e2

将本地项目上传到码云代码管理平台
https://gitee.com/kolorbgg/devops.git
https://gitee.com/yushengjun644/mayikt-springboot.git
https://www.jianshu.com/p/e50cb1448a16
报错则使用强制推:
git push -u origin +master #强制push

Jenkins全局工具配置

进入到jenkins容器中echo $JAVA_HOME 获取java环境安装地址

安装Jenkins对应的Maven插件

“系统管理”——》“安装插件”,点击“可选插件”,找到Maven Integration

Jenkins新建任务构建SpringBoot

源码管理:

Pre Steps

立即构建:

容器里查看:

docker exec -it dfe5e689b6c9 /bin/bash
cd /var/jenkins_home/workspace/devops/target/

Jenkins实现后台启动任务-shell
Post Steps

#!/bin/bash
#服务名称
SERVER_NAME=devops
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=devops-1.0-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/devops/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/devops/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  &

sudo systemctl restart docker
docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080 -p 8082:8082 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

访问:http://10.0.100.136:8082/getMayikt

到此这篇关于基于Docker与Jenkins实现自动化部署的文章就介绍到这了,更多相关Docker Jenkins自动化部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Docker、Nginx和Jenkins实现前端自动化部署

    目录 前期准备 部署目标 Dcoker环境的搭建 连接云服务器 安装Docker环境 Docker安装Docker Compose Docker安装Nginx和Jenkins服务 安装Nginx和Jenkins Nginx和Jenkins目录编写 docker-compose.yml文件配置 nginx.conf文件配置 安装Jenkins插件 关联Jenkins和GitLab 生成密钥 新建项目 源码管理 构建触发器 结束语 前期准备 基于CentOS 7系统云服务器一台. 基于Vue-CLI

  • Jenkins+Docker+Gitee+SpringBoot自动化部署

    目录 1,搭建Jenkins平台 2,Jenkins平台配置 3,创建SpringBoot应用 4,Gitee配置 5,新建自动化部署任务 6,打包测试 当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦.基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程. 1, 搭建J

  • docker+gitlab+jenkins从零搭建自动化部署

    目录 前言: 一.安装Docker 二.Docker 安装Jenkins 1. 搜索仓库中的jenkins镜像 2. 通过拉取jenkins镜像到本地images中 3. 启动jenkins容器 三.登陆Jenkins的初始化操作 四.全局工具配置(配置环境) 五.安装Maven插件 点击系统管理–插件管理 六.新建任务,完成自动化部署 前言: 通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢! Docker的优点: Docker 让开

  • Docker搭建Jenkins并自动化打包部署项目的步骤

    Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行Jenkins: docker run -p 8080:8080 -p 50000:5000 --name jenkins \ -u root \ -v /mydata/jenkins_home:/var/jenkins_home \ -d jenkins/jenkins:lts 直接通过虚拟机ip+端口访问jks,

  • 基于Docker与Jenkins实现自动化部署的原理解析

    原理:Jenkins构建(开发提交代码到代码管理平台),Jenkins处理(Jenkins获取远程代码,自动将源代码实现打包,执行shell脚本启动). Linux安装Docker sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-

  • 基于Docker+Jenkins实现自动化部署的方法

    使用码云搭建Git代码存储仓库 https://gitee.com/login 使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中 基于Docker安装Jenkins环境 1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080 注意:第一次启动的时候正在加载j

  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写出来也是为了让大家避免重复踩坑 几个注意点: 下方shell命令绝大部分都需要管理员权限,所以如果你使用的用户不是root,则都要加上sudo 对于较复杂的命令我都提供了注释版和无注释版,无注释版是为了让你复制起来方便 准备工作 CentOS 7.x Docker Jenkins 一份支持 dock

  • spring boot 项目利用Jenkins实现自动化部署的教程详解

    本文主要讲解利用Jenkins实现spring boot项目的自动化部署: •1.后台技术架构:Spring boot 1.4.2.RELEASE +Mybatis 3+ Redis+ Mysql 5.6+JDK8; •2.代码构建工具:maven 3.3; •3.源代码托管工具:Gitlab; •4.利用maven的docker插件打包成docker镜像在docker容器中部署项目: •5.服务器是阿里云的ECS; 一.安装Jenkins 1.阿里云服务器安装Jenkins方式见如下链接地址

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

  • idea使用docker插件实现一键自动化部署

    目录 环境: 一. docker开启远程连接访问 安装配置idea的docker插件 创建项目,并配置 一 . 创建项目 二. 配置项目 maven打包,生成镜像 创建容器,项目部署到docker 修改项目,一键部署 参考 环境: ​ jdk1.8及以上. Maven 3.2+ ​ idea ​ docker 一. docker开启远程连接访问 首先我们要开启docker的远程连接访问.保证不是docker所在的服务器,也能够远程访问docker. Linux版的docker: 修改docker

  • jenkins+shell自动化部署的实现步骤

    通过jenkins与shell脚本相结合,实现war包自动部署到多台服务器上 环境: 192.168.2.120 jenkins服务器 192.168.2.117 tomcat服务器 设置jenkins服务器免密钥登陆tomcat服务器 117服:执行命令ssh-keygen -t rsa120服:cd .ssh/;scp -p id_rsa.pub root@192.168.2.117:/root/.ssh/authorized_keys或scp -p ~/.ssh/id_rsa.pub ro

  • 在云服务器上基于docker安装jenkins的实现步骤

    目录 基于docker安装jenkins 设置jenkins的反向代理 jenkins是老牌的CI/CD工具.下面记录一下在云服务器上的安装过程. 基于docker安装jenkins 下面记录了如何在云服务器上安装jenkins. 新建一个jenkins_docker文件夹,在文件夹里新建一个data文件夹.并给data文件夹读写权限. chmod -R a+w data/ 新建一个docker-compose.yml文件.添加下面的内容: version: "3.1" service

  • Python接口自动化判断元素原理解析

    这篇文章主要介绍了Python接口自动化判断元素原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景: 在做接口自动化时,通常会判断接口返回中的数据信息,与数据库中返回的数据信息是否一致,比如:将接口返回信息的用户姓名存放到一个列表中,将数据库返回的用户姓名存放到另一个列表中,这时需要判断两个列表是否一致,如果不一致,将不同的元素信息分别回写到excel文件中,可以一目了然的看出哪些信息返回的不正确. 下列代码中直接存放列表信息,比较如

随机推荐