jenkins构建镜像自动化部署


前言

本文是在安装好jenkins以及其他环境的前提下编写的。所以需要保证jenkins服务器上有maven,jdk,关联git等操作。如果需要搜索其他文档


一、Jenkins 是什么?

百度百科:
jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成

二、三种构建方式

1.新建自由风格的软件项目

推荐前端软件应用使用自由风格来进行构建项目。(没有pom.xml文件)

2.maven风格

1)构建并推送jar包

我用来作为后端代码生成,也是我现在用的方法,使用jenkins+sh脚本完成微服务构建。

在这里插入图片描述
挂钩git项目,并且在凭证中找到有效用户,这个用户必须加入到这个项目的管理中。否则拉不到项目.

在这里插入图片描述
在微服务的父pom文件下,执行clean test packet打包命令,就会将代码打包成一个个的jar文件,位置在target文件夹下。

在这里插入图片描述
构建好后的操作可以添加多个,因为我是微服务所以这里写一个具体的步骤出来。
send build artifacts over ssh模式
将构建好的镜像通过ssh发送server服务器,可以从中选择目标的服务器。
transfers
搬运的意思

source files 工作空间下jar包的路径地址
Remove prefix 移除前缀,相当于不会生成路径下的其他包
Remote directory 远程服务器上的文件夹
Exec command 最终执行的shell命令

在我的配置中拉取的是某个微服务下的jar包到指定服务器下的指定文件,完成我执行命令,这个命令是cd到目标文件夹下执行sh脚本

2 shell脚本完成部署

在exec command执行shell命令,我是通过执行脚本来完成自动化构建

我使用docker进行运行的jar包,所以,在每个jar发送到目标服务器下的各个文件后,通过配合文件夹下的dockerfile来进行bulid镜像。之前dockerfile已经做过讲解了,现在只写sh脚本。

步骤:1.声明变量
	  2.创建文件夹和备份文件夹
	  3.停止需要替换的的容器
	  4.删除需要替换的容器
	  5.删除需要替换的镜像、
	  6.构建新的镜像
	  7.将构建的镜像保存到备份文件夹
	  8.管理备份数量
	  9.运行新的容器

实际代码:

#/bin/bash
dir=/data/images_bak/file-parent
name=file-parent
logs=/data/logs/file-parent
port=9003   
#以上为声明变量
if [ ! -d "$dir" ];then
  mkdir -p $dir
else
  echo "xxxx"
fi
if [ ! -d "$logs" ];then
  mkdir -p $logs
fi
#if判断文件夹是否存在  -d 判断是否为文件夹
date=`date +%Y%m%d%H%M%S`
#声明变量
docker stop `docker ps -a|grep $name|awk '{print $1}'`
docker rm `docker ps -a|grep $name|awk '{print $1}'`
docker rmi `docker images|grep $name|awk '{print $1}'`:`docker images|grep $name|awk '{print $2}'`
#停止容器移除容器和镜像
docker build -t $name:$date .
#构建镜像
docker save > $dir/$name-$date.tar `docker images|grep $name|awk '{print $1}'`:`docker images|grep $name|awk '{print $2}'`
#将镜像作为tar保存到对应目录 名字为 imageName:tag
ls -t $dir/*.tar |awk 'NR>3'|xargs rm -f

docker run   -itd -p $port:$port -v $logs:/logs  --name $name $name:$date  bash
#启动镜像映射端口挂载目录和声明容器名

了解:

linux 下shell中if的“-e,-d,-f”是什么意思
文件表达式
 -e filename 如果 filename存在,则为真
 -d filename 如果 filename为目录,则为真 
 -f filename 如果 filename为常规文件,则为真
 -L filename 如果 filename为符号链接,则为真
 -r filename 如果 filename可读,则为真 
 -w filename 如果 filename可写,则为真 
 -x filename 如果 filename可执行,则为真
 -s filename 如果文件长度不为0,则为真
 -h filename 如果文件是软链接,则为真
 filename1 -nt filename2 如果 filename1比 filename2新,则为真。
 filename1 -ot filename2 如果 filename1比 filename2旧,则为真。

总结

jenkis自动化构建并非一种构建方式,需要深入学习了解,如果你是运维人员那么可以继续了解,开发人员个人觉得知道一种构建方式就足以满足日常工作

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins 是一个开源的持续集成和持续部署工具,可以用于自动化构建、测试和部署软件。要使用 Jenkins 自动化构建镜像,你需要遵循以下步骤: 1. 安装 Jenkins:首先,你需要在你的服务器或本地计算机上安装 Jenkins。你可以从 Jenkins 官网(https://www.jenkins.io/)下载并安装适合你操作系统的版本。 2. 配置 Jenkins:安装完成后,打开浏览器并访问 Jenkins 主页。点击“新建任务”,输入任务名称,选择“自由风格项目”,然后点击“确定”。 3. 配置源代码管理:在任务配置页面,找到“源码管理”部分,选择你的代码仓库类型(如 Git、SVN 等),并输入仓库地址和凭据。如果需要,你还可以选择触发器(如定时构建、分支提交等)。 4. 配置构建环境:在任务配置页面,找到“构建环境”部分,选择你要使用的 Docker 镜像作为构建环境。如果你还没有 Docker 镜像,可以在 Docker Hub(https://hub.docker.com/)或其他容器注册表中创建一个。创建完成后,将镜像 ID 添加到 Jenkins 任务中。 5. 配置构建步骤:在任务配置页面,找到“构建”部分,点击“添加构建步骤”,选择“执行 shell”或“执行 Windows 批处理命令”,然后输入相应的构建命令。例如,对于一个 Node.js 项目,你可能需要运行 `npm install` 和 `npm run build` 命令来安装依赖并构建应用程序。 6. 配置后置操作:在任务配置页面,找到“后置操作”部分,点击“添加后置操作”,选择“上传文件”或“发布应用”。这将允许你在构建成功后将生成的镜像或应用程序上传到指定的位置。 7. 保存任务配置:完成所有配置后,点击页面底部的“保存”按钮。现在,你已经设置了一个简单的 Jenkins 自动化构建镜像任务。当你推送代码到仓库时,Jenkins 将自动触发构建过程,并根据你的配置执行相应的命令和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值