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

Centos服务器部署前后端项目

目录

  • 准备工作
    • 1. 准备传输软件
    • 2. 连接服务器
  • 部署Mysql
    • 1.下载Mysql(Linux版本)
    • 2. 解压
    • 3. 修改配置
    • 4. 启动服务
    • 另一种方法Docker
  • 部署后端
    • 1. 在项目根目录中创建Dockerfile文件写入
    • 2. 启动
  • 部署前端
    • 1. 在项目根目录中创建Dockerfile文件写入
    • 2. 启动

准备工作

1. 准备传输软件

下载WinSCP用于传输
WinSCP下载地址

2. 连接服务器

在这里插入图片描述

部署Mysql

1.下载Mysql(Linux版本)

Mysql8下载地址

下载完成后通过WinSCP传输至服务器

2. 解压

tar -xvf mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz  -C /usr/local
  • -x选项表示解压缩
  • -v选项表示在解压缩时显示详细信息
  • -f选项指定要解压缩的文件名
  • -C选项指定解压缩后的目标目录。

3. 修改配置

 cd /usr/local/#修改文件名mv mysql-8.3.0-linux-glibc2.28-x86_64 mysql
...

4. 启动服务

[root@iZ2zefyktv92zomf8sbocfZ mysql] cd /usr/local/mysql/support-files
# 启动
[root@iZ2zefyktv92zomf8sbocfZ support-files] ./mysql.server start

另一种方法Docker

#获取 MySQL Docker 镜像:
docker pull mysql:8.0
# 创建 MySQL 容器
docker run --name mysql-container -dp 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
# 进入容器内部
docker exec -it mysql-container mysql -u root -p

docker run 用于创建指定镜像和启动新的容器实例,
而 docker exec -it 用于在已经运行的容器内执行命令。

导入本地sql文件(或者本地连接再导入)
由于容器是独立的, 在容器内部找不到本地路径所以采用以下方法:

# 1将sql文件复制到 MySQL 容器内部:
docker cp /root/reso/car.sql   mysql-container:/car.sql
#将 car.sql 文件复制到名为 mysql-docker 的 MySQL 容器内部的根目录。# 2. 进入 MySQL 容器
docker exec -it mysql-container bash#3.在容器内部执行以下命令:
mysql -u root -p vehicle_system < /car.sql

在这里插入图片描述
本地连接成功

部署后端

1. 在项目根目录中创建Dockerfile文件写入

#Dockerfile
# 运行时环境的基础镜像
FROM openjdk:17-jdk
ENTRYPOINT ["java", "-jar", "/app.jar"]
#暴露
EXPOSE 8081
ARG JAR_FILE
COPY vehicle.jar app.jar
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone

2. 启动

# 创建镜像
docker build -t springboot .
docker run -p 8081:8081 --name spring-container -d springboot:1.0
docker logs spring-container

请求成功
请求成功!


注意:

  1. 报错显示java找不到
    在这里插入图片描述
    设置正确的镜像源FROM openjdk:17-jdk
  2. 报错显示jar找不到
    设置正确的路径

部署前端

1. 在项目根目录中创建Dockerfile文件写入

Dockerfile
FROM nginx:alpine# 将当前目录下的所有文件复制到容器中的 /usr/share/nginx/html 目录
COPY . /usr/share/nginx/html# 暴露容器的 80 端口
EXPOSE 80# 容器启动时运行的命令
CMD ["cd  /usr/sbin/", "./nginx"]

2. 启动

# 创建镜像
docker build -t react-vehicle .
#创建一个容器并启动,-d后台运行-p(主机端口:容器端口),react-vehicle镜像名
docker run -dp 80:80 react-vehicle

相关文章:

Centos服务器部署前后端项目

目录 准备工作1. 准备传输软件2. 连接服务器 部署Mysql1.下载Mysql(Linux版本)2. 解压3. 修改配置4. 启动服务另一种方法Docker 部署后端1. 在项目根目录中创建Dockerfile文件写入2. 启动 部署前端1. 在项目根目录中创建Dockerfile文件写入2. 启动 准备工作 1. 准备传输软件 …...

【初始RabbitMQ】延迟队列的实现

延迟队列概念 延迟队列中的元素是希望在指定时间到了之后或之前取出和处理消息&#xff0c;并且队列内部是有序的。简单来说&#xff0c;延时队列就是用来存放需要在指定时间被处理的元素的队列 延迟队列使用场景 延迟队列经常使用的场景有以下几点&#xff1a; 订单在十分…...

spark为什么比mapreduce快?

spark为什么比mapreduce快&#xff1f; 首先澄清几个误区&#xff1a; 1&#xff1a;两者都是基于内存计算的&#xff0c;任何计算框架都肯定是基于内存的&#xff0c;所以网上说的spark是基于内存计算所以快&#xff0c;显然是错误的 2;DAG计算模型减少的是磁盘I/O次数&…...

Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限

最近公司准备用Unity做一个安卓端的文件管理器功能&#xff0c;文件管理器已经做完了。刚开始的时候想要申请一下所有文件权限&#xff0c;发现在Unity里面申请所有文件权限(android.permission.MANAGE_EXTERNAL_STORAGE)相对来说比较麻烦。所以准备写一下文章记录一下如何申请…...

「连载」边缘计算(二十一)02-26:边缘部分源码(源码分析篇)

&#xff08;接上篇&#xff09; DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin struct&#xff08;dt : DeviceTwin{}&#xff09;往下剖析&#xff0c;进入DeviceTwin struct的定义&#xff0c;…...

Unity(第四部)新手组件

暴力解释就是官方给你的功能&#xff1b;作用的对象上面如&#xff1a; 创建一个球体&#xff0c;给这个球体加上重力 所有物体都是一个空物体&#xff0c;加上一些组件才形成了所需要的GameObject。 这是一个空物体&#xff0c;在Scene场景中没有任何外在表现&#xff0c;因为…...

【JS】【Vue3】【React】获取鼠标位置的方法:JavaScript、Vue 3和React示例

目录 使用JavaScript原生方法在Vue 3中获取鼠标位置在React中获取鼠标位置 随着Web应用程序的复杂性不断增加&#xff0c;获取用户交互信息变得越来越重要。其中&#xff0c;获取鼠标位置是一项常见的任务&#xff0c;可以用于实现各种交互效果&#xff0c;如拖拽、悬停提示等。…...

[Docker 教学] 常用的Docker 命令

Docker是一种流行的容器化技术。使用Docker可以将数据科学应用程序连同代码和所需的依赖关系打包成一个名为镜像的便携式工件。因此&#xff0c;Docker可以简化开发环境的复制&#xff0c;并使本地开发变得轻松。 以下是一些必备的Docker命令列表&#xff0c;这些命令将在你下一…...

小程序应用、页面、组件生命周期

引言 微信小程序生命周期是指在小程序运行过程中&#xff0c;不同阶段触发的一系列事件和函数。这一概念对于理解小程序的整体架构和开发流程非常重要。本文将介绍小程序生命周期的概念以及在不同阶段触发的关键事件&#xff0c;帮助开发者更好地理解和利用小程序的生命周期。 …...

Springboot中如何记录好日志

Springboot中如何记录日志 日志体系整体介绍 日志一直在系统中占据这十分重要的地位&#xff0c;他是我们在系统发生故障时用来排查问题的利器&#xff0c;也是我们做操作审计的重要依据。那么如何记录好日志呢&#xff1f;选择什么框架来记录日志&#xff0c;是不是日志打越…...

vm 虚拟机中ubuntu环境配置共享文件夹的方式

1. 在虚拟机设置中启用共享文件夹选项&#xff0c;映射到Windows中具体的目录。 2. 启动虚拟机。 3. 挂在cd #查看cd设备文件 sudo blkid#创建挂载点 sudo mkdir -p /media/cdrom#挂载cd sudo mount /dev/sr0 /media/cdrom#卸载cd sudo umount /media/cdrom 4. 执行完挂载后…...

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQX Enterprise 5.5.0 版本已正式发布&#xff01; 在这个版本中&#xff0c;我们引入了一系列新的功能和改进&#xff0c;包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外&#xff0c;新版本还进行了多项改进以及 B…...

安全架构设计理论与实践

一、考点分布 安全架构概述&#xff08;※※&#xff09;安全模型&#xff08;※※※&#xff09;信息安全整体架构设计网络安全体系架构设计区块链技术&#xff08;※※&#xff09; 二、安全架构概述 被动攻击&#xff1a;收集信息为主&#xff0c;破坏保密性 主动攻击&#…...

SQL注入漏洞解析--less-46

我们先看一下46关 他说让我们先输入一个数字作为sort,那我们就先输入数字看一下 当我们分别输入1&#xff0c;2&#xff0c;3可以看到按照字母顺序进行了排序&#xff0c;所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式 当输入时出现报错提示&#xff0c;说…...

【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)

文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础…...

【pytorch】常用代码

文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…...

GB28181 —— Ubuntu20.04下使用ZLMediaKit+WVP搭建GB28181流媒体监控平台(连接带云台摄像机)

最终效果 简介 GB28181协议是视频监控领域的国家标准。该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。GB28181协议信令层面使用的是SIP(Session Initiatio…...

图片录入设备、方式与质量对图片转Excel的影响

随着数字化时代的到来&#xff0c;图片已经成为人们日常生活中不可或缺的一部分。在各行各业中&#xff0c;图片的应用越发广泛&#xff0c;从而促使了图片处理技术的快速发展。然而&#xff0c;图片的质量对于后续数据处理和分析的准确性和可靠性有着至关重要的影响。本文将从…...

Linux:ACL权限,特殊位和隐藏属性

目录 一.什么是ACL 二.操作步骤 ① 添加测试目录、用户、组&#xff0c;并将用户添加到组 ② 修改目录的所有者和所属组 ③ 设定权限 ④ 为临时用户分配权限 ⑤ 验证acl权限 ⑥ 控制组的acl权限 三. 删除ACL权限 一.什么是ACL 访问控制列表 (Access Control List):ACL 通…...

FL Studio21中文版本价格多少?值不值得购买?

FL Studio&#xff0c;也被称为Fruity Loops&#xff0c;是一款非常受欢迎的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;适合广泛的音乐制作人群使用。以下是适合使用FL Studio的人群&#xff1a; 初学者&#xff1a;FL Studio拥有直观且用户友好的界面&#xff0c…...

Ruoyi项目里,你的‘是否缓存’开关为啥不灵?排查Vue keep-alive失效的3个坑

Ruoyi项目中keep-alive失效的深度排查指南 问题现象与核心痛点 最近在Ruoyi社区看到不少开发者反馈一个共性问题&#xff1a;明明在菜单管理中勾选了"是否缓存"选项&#xff0c;但实际页面切换时查询条件依然丢失&#xff0c;activated钩子也没有触发。这种缓存失效现…...

Rust 所有权系统的工程化设计

Rust 所有权系统的工程化设计 Rust 的所有权系统是其最独特的语言特性之一&#xff0c;它通过编译时检查而非运行时垃圾回收来管理内存安全&#xff0c;同时兼顾性能与可靠性。这一设计不仅解决了传统系统级编程中的内存泄漏、数据竞争等问题&#xff0c;还为工程实践提供了可…...

一键体验语义搜索:nli-MiniLM2-L6-H768构建本地知识库检索

一键体验语义搜索&#xff1a;nli-MiniLM2-L6-H768构建本地知识库检索 1. 语义搜索效果惊艳展示 想象一下&#xff0c;你刚接手一个庞大的技术文档库&#xff0c;需要快速找到关于"数据库课程设计"的相关内容。传统关键词搜索可能让你淹没在大量不相关结果中&#…...

如何快速掌握LSLib:神界原罪与博德之门3文件处理的终极指南

如何快速掌握LSLib&#xff1a;神界原罪与博德之门3文件处理的终极指南 【免费下载链接】lslib Tools for manipulating Divinity Original Sin and Baldurs Gate 3 files 项目地址: https://gitcode.com/gh_mirrors/ls/lslib 想为《神界原罪》系列或《博德之门3》制作M…...

用树莓派4B和Python做个遥控小车:从L298N接线到网页控制全流程(附避坑指南)

用树莓派4B和Python打造全功能遥控小车&#xff1a;从硬件搭建到多模式控制实战 树莓派作为一款功能强大的微型计算机&#xff0c;在创客项目中有着广泛的应用。其中&#xff0c;遥控小车是一个经典的入门项目&#xff0c;既能学习硬件连接&#xff0c;又能掌握Python编程技巧。…...

如何永久保存微信聊天记录?完整指南教你三步导出与分析

如何永久保存微信聊天记录&#xff1f;完整指南教你三步导出与分析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...

拆解TMM审稿流程:从Major Revision到Accept,如何高效撰写20页回复信?

学术论文大修回复信撰写全攻略&#xff1a;从意见归类到最终录用 当屏幕上跳出"Major Revision"的邮件通知时&#xff0c;那种既兴奋又忐忑的心情每位研究者都深有体会。兴奋的是论文没有被直接拒稿&#xff0c;忐忑的是面对四位审稿人密密麻麻的修改意见不知从何下手…...

不止是磁化曲线:手把手教你用OOMMF输出和分析OVF 2.0格式的矢量场数据

从磁化曲线到矢量场分析&#xff1a;OOMMF数据处理实战指南 在微磁模拟领域&#xff0c;OOMMF&#xff08;Object Oriented MicroMagnetic Framework&#xff09;作为经典的开源工具&#xff0c;其输出数据的深度解析能力往往被研究者低估。大多数教程止步于基础模拟设置和磁化…...

避坑指南:S32K1xx系列Flash操作的那些“对齐”陷阱与中断安全

S32K1xx系列Flash操作实战&#xff1a;规避对齐陷阱与中断安全的最佳实践 在嵌入式开发中&#xff0c;Flash操作一直是系统可靠性的关键环节。S32K1xx系列微控制器凭借其出色的性能和丰富的外设资源&#xff0c;在汽车电子和工业控制领域广受欢迎。然而&#xff0c;许多开发者在…...

三月七小助手:5步配置《崩坏:星穹铁道》自动化工具的完整指南

三月七小助手&#xff1a;5步配置《崩坏&#xff1a;星穹铁道》自动化工具的完整指南 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 厌倦了《崩坏&#xff1a;星穹铁…...