前言

Spring Cloud项目属于微服务项目,也就是含有多个Sping Boot模块集合而成的项目

Nuxt.js项目属于前端基于Vue的服务端渲染项目

最近在服务器部署上线了一个基于Spring Cloud + 服务端渲染技术Nuxt.js的项目,在这里记录一下

一、部署后端

1、打包

步骤:

  • 在pom.xml中加入打包依赖
  • 在IDEA中点击clean、选择install打包成jar包
  • 在target文件夹中可以看到打包的jar包

注意:如果target文件夹中出现多个jar包,.jar.original 是普通jar包,不包含依赖,.jar 是可执行jar包,包含了pom.xml中的所有依赖,可以直接用java -jar 命令执行。

打包Spring Cloud项目中的每个模块加入打包依赖

比如在gateway模块

在pom.xml加入以下代码

<build><finalName>service-gateway</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
</build>

然后再IDEA中maven插件中点击

相互依赖的模块怎么打包?

比如A模块依赖B模块,就需要在A模块引用B模块的依赖中加入compile,否则打包的时候会显示报错

A模块中的pom.xml文件

<dependency><groupId>com.zfz</groupId><artifactId>common-util</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope>
</dependency>

再点击IDEA中的clean和install打包jar包

2、上传jar包到服务器

保证需要的jar包和Dockerfile、docker-compose.yml文件在同一目录

3、构建镜像

创建Dockerfile文件,举例gateway模块

FROM java:8
MAINTAINER
ADD service-gateway.jar app.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","app.jar"]

在XShell命令行工具中输入以下命令,构建镜像

docker build -t service-gateway .

以此类推,把所有想要构建的镜像都用以上命令构建出来

最后输入docker images查看构建镜像

4、运行容器

创建docker-compose.yml文件

version: '3.1'
services: service-gateway:image: service-gatewayports:- "80:80" restart: "always"container_name: service-gatewayvolumes:  - /root/service-gateway.jar:/root/cloud/service-gateway.jarentrypoint: java -jar /root/cloud/service-gateway.jar服务名:image: 已存在的镜像名称ports:- 映射端口 restart: "always"container_name: 容器名称volumes:  - 挂载路径entrypoint: 构建容器后,运行命令......

在XShell命令行工具中输入以下命令,一键部署jar包

docker-compose up -d

如果不识别这个命令,可能原因就是没有安装docker-compose

安装教程:

# 安装
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 赋予管理员权限
chmod +x /usr/local/bin/docker-compose# 重启docker
service docker restart# 查看版本信息
docker-compose --version

最后输入docker ps查看运行中的jar包

二、部署前端

1、上传前端文件到服务器

2、构建镜像

创建Dockerfile文件

# 指定node环境
FROM node:14.16.0
# 作者
MAINTAINER
# node环境为生产环境
ENV NODE_ENV=production
# 允许所有ip访问
ENV HOST 0.0.0.0
RUN mkdir -p /app
COPY . /app
WORKDIR /app
# 暴露端口
EXPOSE 3000
# 使用淘宝镜像
RUN npm config set registry https://registry.npm.taobao.org
# 下载依赖
RUN npm install
RUN npm run build
CMD ["npm", "start"]

在XShell命令行中进入到/root/app目录中,输入以下命令,构建镜像,等待如图结果,表示成功

docker build -t nuxt .

最后再输入命令docker images查看构建镜像

3、运行容器

创建容器,并且运行

docker run -d --restart=always --name nuxt -p 3000:3000 nuxt

最后再输入命令docker ps查看正在运行的容器

弄完之后,记得在阿里云安全组中,开启3000端口,运行访问

公网访问nuxt项目,http://域名:3000/

打包微服务前后端分离项目并部署到服务器 --- 分布式 Spring Cloud + 页面渲染 Nuxt.js相关推荐

  1. 微服务前后端分离角色权限认证体系

    微服务前后端分离角色权限认证体系 建议配合以下阅读加深理解,第一二个尤为重要: SpringSide 3 中的安全框架 http://www.blogjava.net/youxia/archive/2 ...

  2. SpringCloud微服务前后端分离开发中出现的弱智问题之(不支持当前请求方法)

    SpringCloud微服务前后端分离开发中出现的弱智问题之(不支持当前请求方法) 问题背景 问题解决 为什么说这是一个弱智问题,因为这多是编写代码不仔细造成的. 问题背景 当当后台API发布的接口与 ...

  3. 在Docker 上完成对Springboot+Mysql+Redis的前后端分离项目的部署(全流程,全截图)

    本文章全部阅读大约2小时,包含一个完整的springboot + vue +mysql+redis前后端分离项目的部署在docker上的全流程,比较复杂,请做好心理准备,遇到问题可留言或则私信 目录 ...

  4. 前后端分离项目Nginx部署

    前后端分离项目Nginx部署 更多详细内容请前往我的个人博客 一.在Linux先安装好Java和Nginx 1.安装Java 下载好Java安装包,解压 [root@jiang java]# ll t ...

  5. 前后端分离项目_七个开源的 Spring Boot 前后端分离项目,一定要收藏

    来自公众号:江南一点雨 前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开 ...

  6. 前后端分离项目如何部署_前后端分离项目,如何解决跨域问题?

    跨域资源共享(CORS)是前后端分离项目很常见的问题,本文主要介绍当SpringBoot应用整合SpringSecurity以后如何解决该问题. 01 什么是跨域问题? CORS全称Cross-Ori ...

  7. Java微服务前后端分离技术开发的微信快速框架-教程

    JooLun微信快速开发框架-采用目前最流行的前后端分离框架开发出来的微信快速开发平台.二次开发效率高,技术先进不怕被淘汰 系统特性: Spring Cloud微服务化开发,采用Nacos注册和配置中 ...

  8. Docker部署若伊前后端分离项目到阿里云服务器

    参考博客https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/120210424 将项目拉到本地前后端分离版本 在服务器使用docker配 ...

  9. Django+Vue前后端分离项目的部署

    部署静态文件: 静态文件有两种方式 1:通过django路由访问 2:通过nginx直接访问 方式1: 需要在根目录的URL文件中增加 url(r'^$', TemplateView.as_view( ...

最新文章

  1. iOS开发——UI基础-UIImage,UIImageView的使用
  2. 最小二乘法与最大似然函数的区别
  3. 中国工程师最喜欢的10大WiFi物联网芯片
  4. BZOJ 1798: [Ahoi2009]Seq 维护序列seq
  5. (7)Java数据结构--集合map,set,list详解
  6. Windows环境下QWT安装及配置
  7. OpenShift Security 16 - 用 RHACS 为加固应用镜像安全提供线索
  8. python 热力图_python数据分析:数据缺失机制及利用missingno库对缺失可视化
  9. 深度相机_深度相机(TOF)的工作原理
  10. MySQL替换函数REPLACE替换字符串方法
  11. hosts文件可以干嘛?
  12. python中await async_asyncio中的async和await
  13. nvidia控制面板一直闪退如何解决?
  14. 用c#实现 catia插件speos的部分功能
  15. 通过计算机控制手机,用电脑控制手机的方法
  16. oracle启动报错ora11157,ORA-20011 KUP-11024 外部表引起的错误
  17. @Resource注解
  18. yolov5之魔化修改
  19. 云计算Linux运维——Linux系统——软件管理
  20. 【api】核心业务整理

热门文章

  1. 苹果申请新专利,iPhone或取消刘海设计
  2. 河南的抗疫英雄,给出一系列抗疫英雄的姓名和来自的省份,现在请你帮忙统计来自河南的抗疫英雄有多
  3. Matlab中table类型使用技巧
  4. 与病毒名称相似,“捏脸”游戏 ZEPETO 涉嫌窃听?...
  5. 怎么将word转换成excel表格格式最简单
  6. Mac工具:Karabiner,解决mac上无法使用的情况
  7. parameter缩略语_通信缩略语和术语
  8. AcWing 1129 热浪
  9. sgg-hbase-01
  10. RS-一般推荐(CF系列)-2018:GCMC