您的位置: 首页 - 站长

wordpress 制作手机站好的公众号

当前位置: 首页 > news >正文

wordpress 制作手机站,好的公众号,无锡企业做网站,wordpress 3.6.1各位小伙伴们大家好呀#xff0c;我是小金#xff0c;本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目#xff0c;之前没怎么搞过部署相关的#xff0c;以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题#xff0c;特写此篇#xff0…各位小伙伴们大家好呀我是小金本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目之前没怎么搞过部署相关的以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题特写此篇用于个人记录与分享。 一 、基础插件安装 1.1 安装与配置Maven插件 安装Maven 插件。 搜索 maven选中 Maven Integration 进行安装。 配置maven工具 安装完成后需要配置Maven工具我们的自动化构建任务是使用 Maven 构建的需要告知Jenkins Maven的安装位置。
1.2 安装与配置ndoe插件 安装NodeJS插件 配置NodeJS工具 1.3 安装与配置ssh插件 安装ssh插件 这个插件的作用就是将 Jenkins 构建的 SpringBoot 项目的 jar 包发布的业务服务器上。 配置业务服务器 找到系统配置
拉到最下面找到 Publish over SSH安装完 SSH 插件才有这个选项。 Server是可以有多个的新增一个 SSH Server。
在最下面有个测试的按钮可以测试一下配置有没有问题没有问题保存配置。 二 、构建微服务项目流水线 2.1 创建构建任务 编写流水线脚本依照需求实现不同的步骤这里贴出博主的一个配置仅供参考
2.2 shell脚本 1、jenkins脚本命令这里博主的服务器和jenkins是在一台服务器上所以在jar发送阶段直接使用的shell命令如果不在一台服务器上则使用ssh插件这里不在赘述 pipeline {agent anytools {maven maven3}stages {stage(拉取代码) {steps {git branch: dev, credentialsId: 20250730-853d-40dc-be30-xxxxxxxx, url: https://gitee.com/xxx/xxx.gitecho 拉取代码完成}}stage(执行构建) {steps {dir(kingoffice-auth) {sh mvn –versionmvn clean package -DskipTestsecho 执行构建成功}}}stage(执行更新安装包文件进程) {steps {script {def currentTime new Date().format(yyyyMMddHHmmss)def jarFile kingoffice-auth/target/kingoffice-auth.jardef targetDir /kim/project/auth/def targetFile \({targetDir}kingoffice-auth.jardef dockerFile docker/kim/auth/Dockerfiledef deployScript docker/kim/auth/deploy.sh// 检查并创建目标目录sh sudo mkdir -p \){targetDir}// 检查目标目录是否存在同名 JAR 文件if (fileExists(targetFile)) {// 重命名 JAR 文件def newTargetFile \({targetDir}kingoffice-auth-\){currentTime}.jarsh sudo mv \({targetFile} \){newTargetFile}echo 已重命名文件为: \({newTargetFile}}// 复制新生成的 JAR 文件sh sudo cp \){jarFile} \({targetDir}echo 发送 JAR 文件成功// 删除目标目录下的同名 Dockerfile 和 deploy.sh 文件sh sudo rm -f \){targetDir}Dockerfilesh sudo rm -f \({targetDir}deploy.sh// 复制新的 Dockerfile 和 deploy.sh 文件sh sudo cp \){dockerFile} \({targetDir}sh sudo cp \){deployScript} \({targetDir}echo 发送 Dockerfile 和 deploy.sh 成功}}}stage(构建并启动容器) {steps {script {def targetDir /kim/project/auth/def deployScriptPath \){targetDir}deploy.sh// 确保 deploy.sh 脚本具有执行权限sh sudo chmod x \({deployScriptPath}// 执行 deploy.sh 脚本sh sudo \){deployScriptPath}echo 执行启动容器完成}}}} }2.3 部署脚本 deploy.sh #!/bin/bash# 项目名称 projectNamekingoffice-auth# 年月日时分的时间戳 timestamp\((date %Y%m%d%H%M)# 新镜像的名称 newImageName\)projectName:\(timestamp# 切换到包含Dockerfile的目录 echo 切换到包含Dockerfile的目录 /kim/project/auth/ cd /kim/project/auth/ || { echo 切换目录失败退出脚本; exit 1; }echo 开始构建新镜像: \)newImageName

1.首先使用Dockerfile打镜像

docker build -t \(newImageName . if [ \)? -ne 0 ]; then echo 构建新镜像失败 exit 1 else echo 构建新镜像成功 fiecho 正在停止并删除之前运行的容器…

2.停止并删除之前运行的容器

runningContainerId\((docker ps | grep \)projectName | awk {print \(1}) if [ -n \)runningContainerId ]; then docker stop \(runningContainerId echo 容器已停止: \)runningContainerId docker rm \(runningContainerId echo 容器已删除: \)runningContainerId fiecho 正在删除旧镜像…

删除除最新外的所有旧镜像

oldImageTags\((docker images | grep \)projectName | awk {print \(2} | grep -v \)timestamp | sort | uniq) for tag in \(oldImageTags; dodocker rmi \){projectName}:\({tag} echo 旧镜像已删除: \){projectName}:${tag}; doneecho 创建日志目录…

在宿主机上创建logs目录用于容器挂载这样查看日志可以直接在宿主机查看比较方便

mkdir -p ~/kim/project/auth/logsecho 正在运行新的镜像…

3.运行新的镜像

docker run -d -p 9200:9200 –restartalways -v ~/kim/project/auth/logs:/kim/logs \(newImageNameif [ \)? -eq 0 ]; then echo 新容器运行成功 else echo 新容器运行失败 exit 1 fi2.4 使用沙盒生成命令 上述配置完毕后点击生成流水线脚本即生成对应的脚本语言复制到脚本文件中即可。 流水线创建完成后就可以进行第一次构建尝试了。 三 、部署vue项目 3.1 创建构建任务创建任务 选择构建一个自由风格的软件项目
3.2 源码管理 与上述添加远程仓库步骤一致。
3.3构建环境 勾选 Provider Node npm bin/folder to PATH 。
3.4 构建步骤 执行构建的时候执行 npm 命令进行构建就可以了所以在 Build Step 选择执行 shell
3.5 shell命令

安装依赖

npm install –registryhttps://registry.npmmirror.com

构建项目

npm run build:prod

将构建结果打包

zip -r dist.zip dist echo 打包成功

检查/kim/nginx/html/目录下是否存在dist.zip文件并进行重命名处理

if [ -f /kim/nginx/html/dist.zip ]; thensudo mv /kim/nginx/html/dist.zip /kim/nginx/html/dist_$(date %Y%m%d%H%M%S).zip fi

将dist.zip文件移动到/kim/nginx/html/目录下

sudo mv dist.zip /kim/nginx/html/

删除/kim/nginx/html/目录下的dist文件夹

sudo rm -rf /kim/nginx/html/dist

解压dist.zip至/kim/nginx/html/目录完成部署

sudo unzip /kim/nginx/html/dist.zip -d /kim/nginx/html/ echo 部署成功四 、问题总结 4.1 构建时间 相差八个小时 系统管理-脚本命令行-运行下面代码 System.setProperty(org.apache.commons.jelly.tags.fmt.timeZone,Asia/Shanghai)4.2 构建过程报错 找不到maven 查看构建脚本 是否有此命令此命令是告知jenkins使用哪个maven进行构建博主使用的版本不输此命令会报mvn找不到的错误。 tools {maven maven3}4.3 微服务私有jar找不到 博主最初maven使用的是阿里云的公开镜像但是在微服务中有些依赖使我们项目生成的关系依赖jar这在公共平台是不可能找到的博主想到的办法是搭建个人私服仓库但是这个成本过大于是就使用了阿里云免费提供的私人云效仓库。创建过程不再赘述这里只讲重点遇到的问题。 1、maven配置文件直接使用阿里settings文件即可或者按需配置。 2、第一次推送成功第二次推送取失败 1、私有jar上传前改一下版本号 2、开启允许覆盖指令。 4.4 执行shell命令脚本权限不够 jenkins使用的用户一般默认是jenkins有两种解决方案 1、将jenkins改成root 一般配置文件是在这个目录下 /etc/sysconfig/jenkins 2、赋予jenkins用户权限 编辑 /etc/sudoers 文件在文件最下为 Jenkins 用户赋予无密码执行 sudo 的权限 jenkins ALL(ALL) NOPASSWD:ALL