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

阿里云云效CI/CD配置

1.NODEJS项目流水线配置(vue举例)

nodejs构建配置

官方教程

注意:下图的dist是vue项目打包目录名称,根据实际名称配置 

# input your command here
cnpm cache clean --force
cnpm install
cnpm run build

主机部署配置

rm -rf /home/vipcardmall/frontend/
mkdir -p /home/vipcardmall/frontend
#解压构建的dist压缩包到指定目录
tar zxvf /home/flowapp/vip_card_mall_user_frontend_v2.tgz -C /home/vipcardmall/frontend
#删除dist压缩包
rm -rf /home/flowapp/vip_card_mall_user_frontend_v2.tgz

下图红框的是webhook触发地址,通过post/json触发,触发后会自动触发流水线,请求参数{},触发成功返回

{"object": true,"successful": true
}

2.springboot项目部署

deploy.sh

#!/bin/bash#---------------------------配置开始----------------------------------
# 修改APP_NAME为云效上的应用名
APP_NAME=openapi-service-0.0.1-SNAPSHOT
PROG_NAME=$0
ACTION=$1
APP_START_TIMEOUT_SECONDS=70    # 等待应用启动的时间(秒)
APP_PORT=6677          # 应用端口
BASE_URL=http://127.0.0.1:${APP_PORT}/openapi-service  # 应用的基础URL
HEALTH_CHECK_URL=${BASE_URL}/common/heartCheck  # 应用健康检查URL
APP_HOME=/home/backend/openapi # 从package.tgz中解压出来的jar包放到这个目录下
JAR_NAME=${APP_HOME}/${APP_NAME}.jar # jar包的名字
JAVA_OUT=${APP_HOME}/prod.log  #应用的启动日志
PACKAGE_PATH=/home/flowapp/mall-openapi.tgz  #制品路径
SHUTDOWN_URL=${BASE_URL}/common/actuator/shutdown #优雅关闭地址
SHUTDOWN_TIMEOUT_SECONDS=70 #优雅停机超时时间(秒)
SPRING_PROFILE="prod" # The Spring profile to activate
#---------------------------配置结束----------------------------------# 创建出相关目录
mkdir -p ${APP_HOME}
usage() {echo "Usage: $PROG_NAME {start|stop|restart}"exit 2
}health_check() {exptime=0echo "checking ${HEALTH_CHECK_URL}"while truedostatus_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code}  ${HEALTH_CHECK_URL}`if [ "$?" != "0" ]; thenecho -n -e "\rapplication not started"elseecho "code is $status_code"if [ "$status_code" == "200" ];thenbreakfifisleep 1((exptime++))echo -e "\rWait app to pass health check: $exptime..."if [ $exptime -gt ${APP_START_TIMEOUT_SECONDS} ]; thenecho 'app start failed'exit 1fidoneecho "check ${HEALTH_CHECK_URL} success"
}
start_application() {echo "starting java process"nohup java -jar -Xmx512m -Xms256m -Dspring.profiles.active=${SPRING_PROFILE} -Dserver.port=${APP_PORT} ${JAR_NAME} >${JAVA_OUT} 2>&1 &echo "started java process"
}stop_application() {# 查找Java进程IDcheckjavapid=$(ps -ef | grep java | grep ${APP_NAME} | grep ${APP_PORT} | grep -v grep | awk '{print $2}')# 如果没有发现Java进程,则直接返回if [[ ! $checkjavapid ]]; thenecho "No java process to stop (process not found)"returnfi# 向Java进程发送SIGTERM请求echo "Sending SIGTERM to Java process with PID ${checkjavapid}."kill -15 ${checkjavapid}# 等待Java进程停止for ((i=0; i<$SHUTDOWN_TIMEOUT_SECONDS; i++)); do# 使用curl检查心跳接口http_status=$(curl -o /dev/null -s -w "%{http_code}\n" ${HEALTH_CHECK_URL})# 如果状态码不是200,认为进程已经停止if [ "$http_status" != "200" ]; thenecho "Java process stopped successfully."returnfisleep 1echo "Waiting for Java process to stop..."done# 如果Java进程在等待时间后仍然存在,则发送SIGKILLecho "Java process did not stop after $SHUTDOWN_TIMEOUT_SECONDS seconds, sending SIGKILL"kill -9 $checkjavapidecho "Java process killed forcefully"
}start() {start_applicationhealth_check
}
stop() {stop_application
}
deploy() {# 停止应用程序stop# 解压PACKAGE_PATH文件到APP_HOME目录echo "Unpacking $PACKAGE_PATH to $APP_HOME"if tar zxvf $PACKAGE_PATH -C $APP_HOME; thenecho "Unpack finished successfully."# 删除原始压缩包echo "Removing the package $PACKAGE_PATH"rm -f $PACKAGE_PATHif [ $? -eq 0 ]; thenecho "Package removed successfully."elseecho "Failed to remove the package."fielseecho "Error occurred during unpacking. Exiting."exit 1fi# 启动应用程序start
}case "$ACTION" instart)start;;stop)stop;;restart)stopstart;;deploy)deploy;;*)usage;;
esac

相关文章:

阿里云云效CI/CD配置

1.NODEJS项目流水线配置(vue举例) nodejs构建配置 官方教程 注意:下图的dist是vue项目打包目录名称,根据实际名称配置 # input your command here cnpm cache clean --force cnpm install cnpm run build 主机部署配置 rm -rf /home/vipcardmall/frontend/ mkdir -p /home/…...

个人开发者,Spring Boot 项目如何部署

今天给大家分享一下&#xff0c;作为个人开发者&#xff0c;Spring Boot 项目是如何部署的。 环境介绍 Linux docker docker-compose 目录结构 erwin-windrunner - backups - data - jars - build-docker-compose.sh - docker-compose.yml - Dockerfile文件 Dockerfile …...

【Spring进阶系列丨第九篇】基于XML的面向切面编程(AOP)详解

文章目录 一、基于XML的AOP1.1、打印日志案例1.1.1、beans.xml中添加aop的约束1.1.2、定义Bean 1.2、定义记录日志的类【切面】1.3、导入AOP的依赖1.4、主配置文件中配置AOP1.5、测试1.6、切入点表达式1.6.1、访问修饰符可以省略1.6.2、返回值可以使用通配符&#xff0c;表示任…...

学习记录:转发和重定向

转发&#xff08;Forward&#xff09;和重定向&#xff08;Redirect&#xff09;是两种不同的 Web 请求处理方式&#xff0c;它们在功能和行为上有着显著的区别。 区别 转发&#xff08;Forward&#xff09;&#xff1a; 服务器内部跳转&#xff1a;转发是服务器内部的行为&…...

实现(图像、视频等)数据上云存储

实现&#xff08;图像、视频等&#xff09;数据上云存储 实现&#xff08;图像、视频等&#xff09;数据上云存储通常涉及以下几个步骤&#xff1a; 选择云存储服务商&#xff1a; 根据您的需求、预算、地域覆盖、数据安全性、服务稳定性等因素&#xff0c;选择一家合适的云存储…...

LeetCode 454.四数相加II

LeetCode 454.四数相加II 1、题目 题目链接&#xff1a;454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 <…...

GoogleNet网络训练集和测试集搭建

测试集和训练集都是在之前搭建好的基础上进行修改的&#xff0c;重点记录与之前不同的代码。 还是使用的花分类的数据集进行训练和测试的。 一、训练集 1、搭建网络 设置参数&#xff1a;使用辅助分类器&#xff0c;采用权重初始化 net GoogleNet(num_classes5, aux_logi…...

将数字状态码在后台转换为中文状态

这是我们的实体类 可以看出我们的状态status是2如过返回到前端我们根本不知道2代表的是什么&#xff0c;所以我们需要再这里将数字转换成能看懂的中文状态&#xff0c;首先我们创建一个枚举类 先将我们状态码所对应的中文状态枚举出来&#xff0c;然后创建一个静态方法&#…...

2017NOIP普及组真题 4. 跳房子

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1417\ 核心思想 首先、本题中提到 “ 至少 要花多少金币改造机器人&#xff0c;能获得 至少 k分 ”。看到这样的话语&#xff0c;基本可以考虑要使用 二分答案。 那么&#xff0c;本题中…...

网络与 Internet因特网的基本概念

目录 网络Internet &#xff08;互联网或互连网&#xff09;Internet&#xff08;因特网&#xff09;待续、更新中 网络 指将分布在不同地理位置的、相同或不同类型的网络通过网络互连设备&#xff08;中继器、网桥、路由器或网关等&#xff09;相互连接&#xff0c;形成一个范…...

vue-router 中 router-link 与 a 标签的区别

文章目录 前言 a标签定义 router-link定义 总结 前言 vue-router 中 router-link 与 a 标签的区别 a标签定义 <a> 标签定义超链接&#xff0c;用于从一张页面链接到另一张页面。 从一张页面跳转到另一张页面&#xff0c;但从这里来说就违背了多视图的单页Web应用这个…...

MySQL基础知识——MySQL事务

事务背景 什么是事务&#xff1f; 一组由一个或多个数据库操作组成的操作组&#xff0c;能够原子的执行&#xff0c;且事务间相互独立&#xff1b; 简单来说&#xff0c;事务就是要保证一组数据库操作&#xff0c;要么全部成功&#xff0c;要么全部失败。 注&#xff1a;MyS…...

【架构方法论(一)】架构的定义与架构要解决的问题

文章目录 一. 架构定义与架构的作用1. 系统与子系统2. 模块与组件3. 框架与架构4. 重新定义架构&#xff1a;4R 架构 二、架构设计的真正目的-别掉入架构设计的误区1. 是为了解决软件复杂度2. 简单的复杂度分析案例 三. 案例思考 本文关键字 架构定义 架构与系统的关系从业务逻…...

基于springboot实现人口老龄化社区服务与管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现人口老龄化社区服务与管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了人口老龄化社区服务与管理平台的开发全过程。通过分析人口老龄化社区服务与管理平台方面的不足&#xff…...

代码随想录算法训练营第三十七天| LeetCode 738.单调递增的数字、总结

一、LeetCode 738.单调递增的数字 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 状态&#xff1a;已解决 1.思路 如何求得小于等于N的最大单调递增的整数&#xff1f;98&am…...

C++动态内存管理 解剖new/delete详细讲解(operator new,operator delete)

讨厌抄我作业和不让我抄作业的人 讨厌插队和不让我插队的人 讨厌用我东西和不让我用东西的人 讨厌借我钱和不借给我钱的人 讨厌开车加塞和不让我加塞的人 讨厌内卷和打扰我内卷的人 一、C中动态内存管理 1.new和delete操作内置类型 2.new和delete操作自定义类型 二、operat…...

python-re正则笔记0.2.0

1. 匹配linux文件路径 from re import match, search,findall str"sh refreshConfig.sh /opt/client/ccc.txt /opt/client/ccc.dfs 胜多负少的"patter1"\/.\.\w" print(findall(patter1, str))""" [/opt/client/ccc.txt /opt/client/ccc…...

.NET SignalR Redis实时Web应用

环境 Win10 VS2022 .NET8 Docker Redis 前言 什么是 SignalR&#xff1f; ASP.NET Core SignalR 是一个开放源代码库&#xff0c;可用于简化向应用添加实时 Web 功能。 实时 Web 功能使服务器端代码能够将内容推送到客户端。 适合 SignalR 的候选项&#xff1a; 需要从服…...

【热门话题】常见分类算法解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 常见分类算法解析1. 逻辑回归&#xff08;Logistic Regression&#xff09;2. 朴…...

有效利用MRP能为中小企业带来什么?

在离散制造企业&#xff0c;主流的生产模式主要为面向订单生产和面向库存生产&#xff08;又称为预测生产&#xff09;&#xff0c;在中小企业中&#xff0c;一般为面向订单生产&#xff0c;也有部分面向库存和面向订单混合的生产方式&#xff08;以面向订单为主&#xff0c;面…...

InternlM2

第一次作业 基础作业 进阶作业 1. hugging face下载 2. 部署 首先&#xff0c;从github上git clone仓库 https://github.com/InternLM/InternLM-XComposer.git然后里面的指引安装环境...

2024-12.python高级语法

异常处理 首先我们要理解什么叫做**"异常”**&#xff1f; 在程序运行过程中&#xff0c;总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的&#xff1a; 比如语法错误、调用错误&#xff0c;甚至逻辑错误。 还有一些错误&#xff0c;则是不可预料的错误…...

【C语言】贪吃蛇项目(1) - 部分Win32 API详解 及 贪吃蛇项目思路

文章目录 一、贪吃蛇项目需要实现的基本功能二、Win32 API介绍2.1 控制台2.2 部分控制台命令及调用函数mode 和 title 命令COORD 命令GetStdHandle&#xff08;获取数据&#xff09;GetConsoleCursorInfo&#xff08;获取光标数据&#xff09;SetConsoleCursorInfo &#xff08…...

秋叶Stable diffusion的创世工具安装-带安装包链接

来自B站up秋葉aaaki&#xff0c;近期发布了Stable Diffusion整合包v4.7版本&#xff0c;一键在本地部署Stable Diffusion&#xff01;&#xff01; 适用于零基础想要使用AI绘画的小伙伴~本整合包支持SDXL&#xff0c;预装多种必须模型。无需安装git、python、cuda等任何内容&am…...

华为ensp中aaa(3a)实现telnet远程连接认证配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月14日18点49分 AAA认证的全称是Authentication、Authorization、Accounting&#xff0c;中文意思是认证、授权、计费。 以下是详细解释 认证&#xff08;Authentic…...

前端网络---http协议和https协议的区别

http协议和https的区别 1、http是超文本传输协议&#xff0c;信息是明文传输&#xff0c;https则是具有安全性的ssl加密传输协议。 2、http和https使用的端口不一样&#xff0c;http是80&#xff0c;https是443。 3、http的连接很简单&#xff0c;是无状态的&#xff08;可以…...

FactoryMethod工厂方法模式详解

目录 模式定义实现方式简单工厂工厂方法主要优点 应用场景源码中的应用 模式定义 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。 Factory Method 使得一个类的实例化延迟到子类。 实现方式 简单工厂 以下示例非设计模式&#xff0c;仅为编码的一种规…...

Java基础-知识点1(面试|学习)

Java基础-知识点1 Java与C、PythonJava &#xff1a;C&#xff1a;Python: java 与 C的异同相似之处&#xff1a;区别&#xff1a; Java8的新特性Lambda 表达式&#xff1a;Stream API&#xff1a;接口的默认方法和静态方法&#xff1a; 基本数据类型包装类自动装箱与自动拆箱自…...

【InternLM 实战营第二期-笔记1】书生浦语大模型开源体系详细介绍InternLM2技术报告解读(附相关论文)

书生浦语是上海人工智能实验室和商汤科技联合研发的一款大模型,很高兴能参与本次第二期训练营&#xff0c;我也将会通过笔记博客的方式记录学习的过程与遇到的问题&#xff0c;并为代码添加注释&#xff0c;希望可以帮助到你们。 记得点赞哟(๑ゝω╹๑) 书生浦语大模型开源体系…...

【免费】基于SOE算法的多时段随机配电网重构方法

1 主要内容 该程序是完全复现《Switch Opening and Exchange Method for Stochastic Distribution Network Reconfiguration》&#xff0c;也是一个开源代码&#xff0c;网上有些人卖的还挺贵&#xff0c;本次免费分享给大家&#xff0c;代码主要做的是一个通过配电网重构获取…...

凡科网做的网站在百度上能找到吗/深圳百度关键词

原标题&#xff1a;经验 | 德勤19par面合集楼主新鲜audit par面经验文章来源&#xff1a;应届生求职网哎&#xff0c;平复一下心情&#xff0c;刚刚面试坐在家里&#xff0c;总还保有一丝希望&#xff0c;准备的过程论坛给了很多帮助&#xff0c;来回馈这个神奇的论坛&#xff…...

学习做网站/北京互联网营销公司

介绍非线程安全的单例版本简单线程安全版本(通过lock实现)Double-checked locking不完全懒汉式&#xff0c;但不加锁的线程安全完全懒汉实例化使用.NET 4 Lazy type 特性性能 vs 懒汉式Exceptions总结介绍#单例模式是软件工程学中最富盛名的设计模式之一。从本质上看&#xff0…...

做羞羞事视频网站/网络媒体有哪些

本文本不想写&#xff0c;为了第4点而写 1.父类不可被继承 2.父类方法不可被重写 3.final提升基础数据类型到运行时常量池里 4.方法中&#xff0c;final指向的东西&#xff0c;匿名内部类也可以进行访问 第四点重点讲一下 void test(final Object o) {new Thread(new Runna…...

余姚什么网站做装修比较好/网站怎么优化排名

引言 在我之前发的一篇文章中就有发Android音乐播放器&#xff0c;那篇博客到现在应该已经快有一年了&#xff0c;当时的主要精力放在Android的学习和网络攻防那一块上&#xff0c;导致那个Android项目是没有服务器后台的&#xff0c;最近在学习相关的web知识&#xff0c;然后…...

西安网站建设公司西安网络公司/国外seo

ES 既有基本的搜索功能、又有字段类型的精确搜索、分词匹配、范围搜索、坐标搜索、分页查询等等。 4.1 搜索辅助功能 俗话说“工欲善其事&#xff0c;必先利其器”。在介绍ES提供的各种搜索匹配功能之前&#xff0c;我们先介绍ES提供的各种搜索辅助功能。例如&#xff0c;为优化…...

c2c网站管理系统/武汉网站seo

英雄联盟购物卷怎麽用&#xff01;下面就来告诉大家! LOL在挑战你的命运活动中玩家会获得购物点&#xff0c;购物点有什么用呢&#xff1f; 购物点用途&#xff1a; 购物点是你达到到一定的钱数之后才能用购物点买东西的&#xff0c;才会使用购物点优惠&#xff0c;所以你必须购…...