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

前后端项目部署方案汇总

Vue项目

1、本地打包部署

# 本地打包部署到线上服务器
npm run build && \
rsync -r ./dist/* root@127.0.0.1:/www/www.demo.com/www

2、服务器端打包部署

步骤

拉取代码 -> 安装依赖 -> 打包编译 -> 拷贝到运行目录 -> 发送成功消息

shell命令

cd /www/www.demo.com/www && \
git pull && \
export PATH="/usr/local/node-v16.20.2/bin:$PATH" && \
pnpm i --no-frozen-lockfile --registry=https://registry.npmmirror.com && \
npm run build && \
mkdir -p www && \
/usr/bin/cp -R ./dist/* ./wwwif [ $? -eq 0 ]; then# 部署完成curl -H "Content-Type:application/json" -X POST -d '{"to": ["123456@qq.com"], "subject": "【Runner】部署完成", "body": "部署完成 https://www.demo.com/"}' http://127.0.0.1:8080/sendEmail
else# 部署失败curl -H "Content-Type:application/json" -X POST -d '{"to": ["123456@qq.com"], "subject": "【Runner】部署失败", "body": "部署失败 https://www.demo.com"}' http://127.0.0.1:8080/sendEmail
fi

Nuxt项目

supervisor配置文件

[program:demo-www]
environment=NODE_MODE=alpha
directory=/data/wwwroot/www.demo.com
command=/usr/local/node-v16.20.2/bin/node node_modules/nuxt/bin/nuxt.js start
user=www
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=1
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=1
stopasgroup=true
killasgroup=true

Java项目

本地打包部署脚本

#!/bin/bash
# 打包脚本
mvn clean package -P prod && \
rsync -rtvz --progress ./target/dist/demo-api/* root@127.0.0.1:/data/wwwroot/www.demo.com/www && \
ssh root@127.0.0.1 '/data/wwwroot/www.demo.com/www && /usr/bin/supervisorctl restart demo-api'if [ $? -eq 0 ]; thenecho 'success'
elseecho 'error'
fi

supervisor配置文件

[program:demo-api]
directory=/data/wwwroot/www.demo.com/www
command=/usr/bin/java -jar ./demo-api.jar --spring.profiles.active=pro
user=www
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=1
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 链接追踪系列-00.es设置日志保存7天-番外篇
  • 对Mapper.xml文件进行深入的学习
  • @SpringBootApplication 注解
  • linux:命令执行过程【图表】
  • linux 安装redis 遇到问题解决方案
  • 面试真题 | ARM体系架构基础知识
  • (四)stm32之通信协议
  • 补码是什么意思_补码的性质_补码反码原码的转换
  • c++【入门】计算(a+b)*c的值
  • LLM大模型应用中的安全对齐的简单理解
  • 什么是数据同步服务RSYNC?
  • 快速排序算法Python实现
  • 【人工智能】-- 迁移学习
  • 包管理器-npm、yarn、cnpm、pnpm的比较
  • JDK安装详细教程(以JDK17为例)
  • 《剑指offer》分解让复杂问题更简单
  • Java IO学习笔记一
  • java取消线程实例
  • JS 面试题总结
  • JS实现简单的MVC模式开发小游戏
  • Spark RDD学习: aggregate函数
  • Tornado学习笔记(1)
  • 爱情 北京女病人
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 彻底搞懂浏览器Event-loop
  • 分享几个不错的工具
  • 后端_MYSQL
  • 两列自适应布局方案整理
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • HanLP分词命名实体提取详解
  • linux 淘宝开源监控工具tsar
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #1014 : Trie树
  • #Linux(Source Insight安装及工程建立)
  • #知识分享#笔记#学习方法
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (七)理解angular中的module和injector,即依赖注入
  • (十)c52学习之旅-定时器实验
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET C# 使用 iText 生成PDF
  • .Net Core 微服务之Consul(二)-集群搭建
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET6实现破解Modbus poll点表配置文件
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET成年了,然后呢?
  • .NET的微型Web框架 Nancy
  • .net反编译的九款神器
  • .NET实现之(自动更新)
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限