几分钟完成前后端分离项目部署

2024-01-29 05:12

本文主要是介绍几分钟完成前后端分离项目部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文章主要讲如何手动部署前后端分离项目,分前端部署后端部署,部署所用项目获取:关注公众号发送:
cloud

前言

基于本项目的所需的环境

  • 前端
    • node:v16.14.2
    • pnpm:8.6.9
  • 后端
    • jdk:17
    • maven:Apache Maven 3.8.1
    • mysql:8.0.28
    • nacos:2.1.1
  • 服务器:2核4G(最好)
    • nginx:1.20.2
    • docker:24.0.7

前端部署

1. 新建目录

用于存放项目 build 后的资源

cd /
mkdir www
cd /www
mkdir html
2. 项目构建
  • 执行 pnpm run build

在这里插入图片描述

  • 将生成的 dist 目录上传到刚才创建的 /www/html/

    在这里插入图片描述

3. 安装 nginx
  • 安装:Nginx安装

  • 修改配置:vim /usr/local/nginx/conf/nginx.conf

    在这里插入图片描述

  • 访问 ip:80 验证

后端部署

1. Package
  • 子项目的 pom 文件添加打包插件

    <build><finalName>打包后的jar包名</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
    </build>
    
  • 在项目目录下执行:mvn cleanmvn package

    在这里插入图片描述

  • target目录下的jar包上传至服务器
    在这里插入图片描述
    在这里插入图片描述

    使用 rz 命令上传到服务器上(最好分别建立文件夹存放单独的jar包,便于后面打包生成镜像)

2. 制作基础镜像

因为运行 jar 包需要 jdk 环境,项目使用的是 jdk17,因此需要据此制作一个含有 jdk17 的基础镜像,选用 ubuntu 为基础来进行制作

安装docker

  • 拉取 ubuntu 镜像:docker pull ubuntu

  • 新建一个 jdk 目录,将 jdk17的安装包copy到目录下

  • 新建 Dockerfile 文件:vim Dockerfile

    FROM ubuntu
    MAINTAINER zeroclian
    RUN mkdir /usr/local/jdk
    WORKDIR /usr/local/jdk
    ADD jdk-17_linux-x64_bin.tar.gz /usr/local/jdkENV JAVA_HOME /usr/local/jdk/jdk-17.0.5
    ENV CLASSPATH $JAVA_HOME/lib/
    ENV PATH $JAVA_HOME/bin:$PATH
    

    在这里插入图片描述

  • 在 Dockerfile 文件所在目录执行:docker build -t jdk17 .

    将会生成了一个名为 jdk17 的镜像,使用 docker images 查看

3. 制作服务镜像
  • 同样的方式,在上传的cloud-service.jar所在目录下新建 Dockerfile 文件,执行:docker build -t cloud-service .

    FROM jdk17
    ADD cloud-service.jar /cloud-service.jar
    ENTRYPOINT ["java","-jar","/cloud-service.jar"]
    

    最后我们会得到三个镜像:

    在这里插入图片描述

4. 启动容器
  • 启动容器,开放端口号

    docker run -di --name=cloud-gateway -p 9999:9999 cloud-gateway
    docker run -di --name=cloud-service -p 8001:8001 cloud-service
    

    在这里插入图片描述

  • 验证是否成功

    在这里插入图片描述

❗️注意事项❗️

  • 无法访问时,请检查服务器的安全组是否放开相关端口
  • cloud-nacos不在需要理会,直接nacos安装即可,不需要使用容器启动
  • 若启动后很快容器就停止了,可能是服务器内存不足,可以自行调整容器
  • jdk17安装包获取:公众号发送jdk17

这篇关于几分钟完成前后端分离项目部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/655821

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建