前言
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: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-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
# 重启 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/