Jenkins+vue发布项目

在Jenkins 中先创建一个任务名称

在这里插入图片描述
然后进行下一步,放一个项目
在这里插入图片描述
在这里插入图片描述

填写一些参数
参数1:
在这里插入图片描述
参数2:
在这里插入图片描述
参数3:在这里插入图片描述参数4:
在这里插入图片描述
在这里插入图片描述
点击保存就行了

配置脚本

// git
def git_url = 'http://gitlab.xxxx.git'
def git_auth_id = 'GITEE_RIVERBIED'// harbor
def harbor_host = '10.0.165.17:5000'
def harbor_project = 'test'
def harbor_crt_id = 'HARBOR_CRT_ID'// k8s shf
def k8s_crt_id = 'KUBE_CONFIG_FILE_ID'
def k8s_namespace = 'test-web'// common
def api_name = 'test-web'
def docker_file_path= ''
def docker_image = "${harbor_host}/${harbor_project}/${api_name}:${SERVICE_VERSION}-${ENVIRONMENT.toLowerCase()}"
def service_node_port = ''
def current_timespan = System.currentTimeMillis().toString()pipeline {agent anytools {nodejs 'nodejs14.15.1'}stages {stage('参数初始化+代码拉取') {steps {script {api_name = "test-web"docker_file_path = "Dockerfile"docker_image = "${harbor_host}/${harbor_project}/${api_name}-${ENVIRONMENT.toLowerCase()}:${SERVICE_VERSION}_${current_timespan}"service_node_port = "30992"}dir("${ENVIRONMENT.toLowerCase()}") {// 如果是公开仓库,可以直接使用 git url: "${git_url}" 拉取代码git branch: BRANCH, credentialsId: "${git_auth_id}", url: "${git_url}"}}}stage('依赖安装') {steps {dir("${ENVIRONMENT.toLowerCase()}") {sh (script: """npm install --registry=https://registry.npm.taobao.org""")}}}stage('代码编译') {steps {dir("${ENVIRONMENT.toLowerCase()}") {sh (script: """npm run build""")}}}stage('镜像构建') {steps {dir("${ENVIRONMENT.toLowerCase()}") {sh (script: """oldImage=\$(docker images ${harbor_host}/${harbor_project}/${api_name}:${SERVICE_VERSION}  | grep ${api_name} | awk \'{ print \$1":"\$2 }\')if [ -z \$oldImage ]; thenecho "正常构建镜像"elseecho "删除存在镜像"docker rmi \$oldImagefi""")sh 'pwd'// 生成镜像sh "docker build -t ${docker_image}  -f ${docker_file_path} ."// 查看镜像sh "docker images ${harbor_host}/${harbor_project}/${api_name}"}}}stage('镜像上传') {steps {withCredentials([usernamePassword(credentialsId: "${harbor_crt_id}", passwordVariable: 'harbor_password', usernameVariable: 'harbor_user_name')]) {sh (script: """# 登录镜像仓库HARBOR_PASSWORD=${harbor_password} && echo "\$HARBOR_PASSWORD" | docker login ${harbor_host}  -u ${harbor_user_name} --password-stdin# 推送镜像docker push ${docker_image}# 登出docker logout ${harbor_host}# 删除镜像docker rmi ${docker_image}""")}}}stage('发布到K8S') {steps {dir("${ENVIRONMENT.toLowerCase()}") {sh """api_name=${api_name}deploy_api_name=\${api_name}export REGISTRY_HOST_IMAGE=${docker_image}export SERVICE_NAME=\${deploy_api_name}export SERVICE_VERSION=\${SERVICE_VERSION}export SERVICE_DEPLOYNAME_NAME=\${deploy_api_name}-deploymentexport ASPNETCORE_ENVIRONMENT=${ENVIRONMENT}export SERVICE_SERVICE_NAME=\${deploy_api_name}-serviceexport SERVICE_SERVICE_PORT_NAME=\${deploy_api_name}-portexport SERVICE_SERVICE_SELECT_NAME=\${deploy_api_name}export SERVICE_SERVICE_NODE_PORT=${service_node_port}export SERVICE_REPLICAS=${REPLICAS}export K8S_DEPLOY_NAMESPACE=${k8s_namespace}envsubst < deploy/k8s-master/template/api-deployment.yaml > deploy/k8s-master/template/api-real-deployment.yamlecho 'deployment发布内容'cat deploy/k8s-master/template/api-real-deployment.yamlenvsubst < deploy/k8s-master/template/api-service.yaml > deploy/k8s-master/template/api-real-service.yamlecho 'service发布内容'cat deploy/k8s-master/template/api-real-service.yaml"""withKubeConfig([credentialsId: "${k8s_crt_id}"]) {sh 'kubectl apply -f deploy/k8s-master/template/api-real-deployment.yaml'sh 'kubectl apply -f deploy/k8s-master/template/api-real-service.yaml'}}}}}
}

在harbor网站里创建一个项目对应harbor_project 与脚本相互对应,
如果不创建,镜像创建不成功

在这里插入图片描述
在下面这个网站里创建一个k8s_namespace 与上面的脚本相互对应,
如果不创建,发布到k8s会报错

在这里插入图片描述

然后还有一个Dockerfile文件

FROM nginx
COPY dist/ /var/test/html/
COPY dockerConf/default.conf /etc/nginx/conf.d/
EXPOSE 80
EXPOSE 443

然后还要在dockerConf文件夹下创建一个default.conf文件

server {listen 80;server_name "";gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 6;gzip_types text/plain application/javascript application/x-javascript text/css application/css application/xml application/xml+rss text/javascript application/x-httpd-php imagzip_disable "MSIE [1-6]\.";gzip_vary on;access_log  /var/log/nginx/access.log;location / { root   /var/test/html/; index  index.html index.htm; if (!-e $request_filename) { rewrite ^(.*)$ /index.html?s=\$1 last; break; } }
}

各种配置完之后,运行一下
在这里插入图片描述

接下来,成功会变成这样,如果失败了,会在具体的哪一步报错,根据错误信息去修改,有时候网速慢,会在下载依赖的时候就会报错
在这里插入图片描述
这就成了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务拆分的思考

一、前言 前面几篇文章介绍了微服务核心的两个组件&#xff1a;注册中心和网关&#xff0c;今天我们来思考一下微服务如何拆分&#xff0c;微服务拆分难度在于粒度和层次&#xff0c;粒度太大拆分的意义不大&#xff0c;粒度太小开发、调试、运维会有很多坑。 二、微服务划分…

面试知识点--基础篇

文章目录 前言一、排序1. 冒泡排序2. 选择排序3. 插入排序4. 快速单边循环排序5. 快速双边循环排序6. 二分查找 二、集合1.List2.Map 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、排序 1. 冒泡排序 冒泡排序就是把小的元素往前调或者把大…

xray的使用

不需要扫描 点击 双击xray 1.打开 2.使用 主打扫描 3.被动扫描 网站 与 Burp 联动 - xray 安全评估工具文档 双击 xray cmd xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output text.html 1.bp 2.这道这个 3.配置 xray 改为* 4.代理

一些ECharts配置

基于vue3&#xff0c;EChart5.4.3版本 Line <script setup lang"ts"> import {onBeforeUnmount, onMounted, ref, watch} from "vue" import {useEcharts, type ECOption} from "/composables" import * as echarts from "echarts/c…

全志A40i PRREMPT-RT Linux平台搭建IgH环境

1、编译安装内核 参考创龙开发板官方文档&#xff0c;在menuconfig中把gmac设置成M&#xff0c;方便卸载原始gmac驱动&#xff0c;然后加载优化后的实时网卡驱动 2、编译IgH 把IgH主站代码放到开发板上&#xff0c;进行配置编译(配置和编译可以参考网上ubuntu…

tensorrt安装使用教程

一般的深度学习项目&#xff0c;训练时为了加快速度&#xff0c;会使用多GPU分布式训练。但在部署推理时&#xff0c;为了降低成本&#xff0c;往往使用单个GPU机器甚至嵌入式平台&#xff08;比如 NVIDIA Jetson&#xff09;进行部署&#xff0c;部署端也要有与训练时相同的深…

python学习7

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

GEE:对二值图层进行腐蚀和/或膨胀操作

作者:CSDN @ _养乐多_ 腐蚀和膨胀 是数学形态学图像处理中的两个基本操作,用于修改和分析二值图像(包含只有两个像素值的图像,通常是黑和白)。这些操作可用于处理遥感图像、地理信息系统(GIS)中的栅格数据以及其他领域的图像处理。 腐蚀(Erosion):腐蚀是一种用于缩小…

电脑出现关于kernelbase.dll文件找不到的情况,有什么办法可以解决?

在使用电脑中&#xff0c;突然提示找不到kernelbase.dll&#xff0c;这时候应该怎么办呢&#xff1f;出现这样的问题&#xff0c;有神办法可以解决。看到有小伙伴在问这个问题&#xff0c;那么今天就带大家了解一下这个文件&#xff0c;同时教大家如何解决kernelbase.dll丢失的…

最佳买股票的时机------题解报告

题目&#xff1a; 暴力双循环会时间超限 一次循环&#xff0c;不断更新min和sum值 时间复杂度为O(n),空间复杂度为O(1) 写完之后看了一眼题解&#xff0c;发现没有更好的方法 public int maxProfit(int[] prices) {int sum 0,minprices[0];for(int i1;i <prices.length;i…

乙酰基四肽-3/Acetyl Tetrapeptide-3——刺激毛囊,长出新头发,有效防止秃头

社会对头发很着迷。从圣经人物参孙&#xff08;他从头发中获得力量&#xff0c;并说如果剃光头他就会失去力量&#xff09;&#xff0c;到社交媒体上无休无止地谈论名人的标志性风格&#xff0c;头发是一个永恒的话题。 为什么痴迷&#xff1f;好吧&#xff0c;我们的头发是外…

睿趣科技:现在开抖音小店到底要多少钱

随着短视频平台的兴起&#xff0c;抖音小店成为了越来越多创业者的选择。那么&#xff0c;现在开抖音小店到底要多少钱呢?这个问题涉及到以下几个方面的费用。 首先&#xff0c;我们需要了解的是&#xff0c;开设抖音小店本身是免费的。你只需要在抖音APP上申请开店&#xff0…

idea不识别yaml文件导致,配置文件点击跳转不了类

文章目录 场景确认的idea安装了ymal插件,确认你的配置文件是yml格式的还是ymal格式的然后在项目配置中看看是否有对应的后缀.最后看看在项目模块里面有没有spring模块跟对应的配置文件,如果没有就要添加这样点击配置文件就能跳转到对应的实体类了 场景 在使用idea时&#xff0…

wpf主页面解析

1、 开头的网址作用 1和2都是引入命名空间的&#xff0c;每一个字符串代表一系列的命名空间&#xff0c;这样就可以不用一个一个引用了。wpf中规定有一个名称空间是可以不加名字的&#xff0c;xmlns不加名字是默认命名空间。 "http://schemas.microsoft.com/winfx/2006/x…

微信小程序实现类似于 vue中ref管理调用子组件函数的方式

微信小程序中确实有类似于 vue 中 ref管理子组件的方式、 这里 我给子组件定义了一个 class 只要是 css选择器拿得到的 都没什么问题 但你要保证唯一性 建议前端开发还是慎重一点 就算是不能重复也尽量用class 因为id总还是有风险的 然后 我在子组件中顶一个了一个函数 start…

Kafka序列化反序列化解析、kafka schema

Kafka序列化反序列化解析、kafka schema。 kafka有自己的rpc协议,即nio bytebuf中的数据格式,详见之前的kafka相关介绍的文章。这里我们来看一下大家常用,有时又疑惑的序列化反序列化,对应rpc协议中的records,kafka叫Serdes,实际上也是字面上的意思serialize and deseri…

《C和指针》(3)数据

问题 假定你正编写一个程序&#xff0c;它必须运行于两台机器之上。这两台机器的缺省整型长度并不相同&#xff0c;一个是16位&#xff0c;另一个是32位。而这两台机器的长整型长度分别是32位和64位。程序所使用的有些变量的值并不太大&#xff0c;足以保存于任何一台机器的缺省…

C++中多态的使用和建立条件

一、多态引入 多态按字面的意思就是多种形态。当类之间存在层次结构&#xff0c;并且类之间是通过继承关联时&#xff0c;就会用到多态。 C 多态意味着调用成员函数时&#xff0c;会根据调用函数的对象的类型来执行不同的函数。 根据代码&#xff0c;引入多态的概念&#xff1…

【计算机毕设选题推荐】图书在线商城SpringBoot+SSM+Vue

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的图书在线商城 技术栈 SpringBootVueMySQLMaven 文章目录 一、图书在线商城…

[ Windows ] ping IP + Port 测试 ip 和 端口是否通畅

开发过程中经常会黑窗口中手动测试一下计划请求的目标ip和端口是否通畅&#xff0c;测试方式如下&#xff1a; 一、单纯测试ip是否能够 ping 通&#xff0c;这个比较熟悉了&#xff0c;运行 cmd 打开黑窗口 输入如下指令&#xff0c;能够如下提示信息&#xff0c;表示端口是通…