前言
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模块的依赖中退出<scope>compile</scope>,否则打包的时候会显示报错
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:8MAINTAINER ADD service-gateway.jar app.jarEXPOSE 80ENTRYPOINT ["java","-jar","app.jar"]
在XShell命令行工具中输出以下命令,构建镜像
docker build -t service-gateway .
以此类推,把所有想要构建的镜像都用以上命令构建进去
最初输出docker images查看构建镜像
4、运行容器
创立docker-compose.yml文件
version: '3.1'services: service-gateway: image: service-gateway ports: - "80:80" restart: "always" container_name: service-gateway volumes: - /root/service-gateway.jar:/root/cloud/service-gateway.jar entrypoint: 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# 重启dockerservice 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.0RUN mkdir -p /appCOPY . /appWORKDIR /app# 裸露端口EXPOSE 3000# 应用淘宝镜像RUN npm config set registry https://registry.npm.taobao.org# 下载依赖RUN npm installRUN npm run buildCMD ["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/