前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >打包微服务前后端分离项目并部署到服务器

打包微服务前后端分离项目并部署到服务器

原创
作者头像
全栈开发Dream
修改于 2021-05-25 02:54:15
修改于 2021-05-25 02:54:15
5.1K0
举报
文章被收录于专栏:全栈开发Dream全栈开发Dream

前言

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加入以下代码

代码语言:txt
AI代码解释
复制
<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文件

代码语言:txt
AI代码解释
复制
<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模块

代码语言:txt
AI代码解释
复制
FROM java:8
MAINTAINER 
ADD service-gateway.jar app.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","app.jar"]    

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

代码语言:txt
AI代码解释
复制
docker build -t service-gateway .

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

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

4、运行容器

创建docker-compose.yml文件

代码语言:txt
AI代码解释
复制
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包

代码语言:txt
AI代码解释
复制
docker-compose up -d

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

安装教程:

代码语言:txt
AI代码解释
复制
# 安装
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
image-20210523031115173
image-20210523031115173

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

二、部署前端

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

2、构建镜像

创建Dockerfile文件

代码语言:txt
AI代码解释
复制
# 指定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目录中,输入以下命令,构建镜像,等待如图结果,表示成功

代码语言:txt
AI代码解释
复制
docker build -t nuxt .

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

3、运行容器

创建容器,并且运行

代码语言:txt
AI代码解释
复制
docker run -d --restart=always --name nuxt -p 3000:3000 nuxt

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker命令大总结,主要微服务项目部署
3.5 给MySQL挂载本地目录容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
叫我阿杰好了
2022/11/07
1.7K0
Docker命令大总结,主要微服务项目部署
还不会部署微服务项目?保姆级教程来啦!
项目上线是每位学编程同学必须掌握的基本技能。之前我已经给大家分享过很多种上线单体项目的方法了,今天再出一期微服务项目的部署教程,用一种最简单的方法,带大家轻松部署微服务项目。
程序员鱼皮
2023/09/27
2.6K1
还不会部署微服务项目?保姆级教程来啦!
最强微服务部署工具——Docker内容详解
但是微服务由于被分成多个部分,所以部署起来需要不同的条件环境甚至不同的操作系统从而十分繁琐
秋落雨微凉
2023/03/08
1.7K0
最强微服务部署工具——Docker内容详解
Java 微服务部署的核心流程及实践方案
使用 Maven 构建项目,需注意父级 pom.xml 中需移除 executions 配置并分散到子模块,避免主类缺失问题。 配置插件生成可执行 JAR 包: xml Copy Code jar org.springframework.boot spring-boot-maven-plugin repackage
编程小白狼
2025/04/11
1350
Docker+Nginx打包部署前后端分离项目
最近做了一个前后端分离的通用权限管理系统,今天想用自己的服务器部署下,本地部署测试是没问题的,但是部署在服务器上还是出现了许多小插曲,这里大概记录一下吧。
别团等shy哥发育
2023/02/25
2.5K0
Docker+Nginx打包部署前后端分离项目
Java微服务之Spring Boot on Docker
本文学习前提:Java, Spring Boot, Docker, Spring Cloud
Edison Zhou
2018/09/27
1.1K0
Java微服务之Spring Boot on Docker
通过jenkins交付微服务到kubernetes
随着Kubernetes的遍地开花,Kubernetes的优势可以说是深入人心,很多企业也是利用Kubernetes,来实现更高效的交付和更好地提高我们的资源使用率,推动标准化,适应云原生。
星哥玩云
2022/08/08
2K0
通过jenkins交付微服务到kubernetes
docker微服务简单打包部署
application.properties或者yml文件都可以,我这里用的properties
别团等shy哥发育
2023/02/25
7940
docker微服务简单打包部署
【Docker】自定义镜像与Compose
1)在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像
陶然同学
2023/02/27
2.2K0
【Docker】自定义镜像与Compose
Docker 部署 SpringCloud 微服务(docker-compose 编排微服务高可用案例)
前面的一篇文章,通过对每个项目建立单独的 Dockerfile,可以实现对单个项目生成 Docker 镜像,然后单独启动容器,可以实现简单连接,达到部署的目的。
子乾建建-Jeff
2020/06/29
9.3K2
Docker 部署 SpringCloud 微服务(docker-compose 编排微服务高可用案例)
Docker-compose编排微服务顺序启动
docker-compose可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序。docker-compose 中的 depends_on 配置是容器的启动顺序, 并不是容器中服务的启动顺序。本章将详细叙述如何解决 docker-compose 顺序启动微服务的问题。
py3study
2020/04/24
7.5K0
SpringBoot-Mysql应用Docker打包部署
直接安装 docker desktop for windows即可,其中还会包含了docker compose。可通过 docker-compose version来验证结果,一般会输出如下信息:
技术路漫漫
2020/06/21
2.3K0
SpringBoot-Mysql应用Docker打包部署
CentOS安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
不吃紫菜
2023/02/13
8.5K0
CentOS安装Docker
Docker 部署 SpringCloud 微服务的服务提供者和消费者(初级版)
Spring Cloud 微服务和 Docker 容器化技术,随便拿出来一个,都够你玩半天喝二两的。那么当它俩交叉在一起时,确实让新手烧脑。
子乾建建-Jeff
2020/06/29
1.4K0
Docker 部署 SpringCloud 微服务的服务提供者和消费者(初级版)
服务 Docker 化
Docker的出现让容器化技术得以普及,更快的部署和维护与Spring Cloud的结合,能让我们不再像以前一样为了某一个模块的增加而服务器上大动干戈,还需要考虑环境的问题。在这一篇中会讲到 SpringCloud 项目 Docker 化 。
程序员果果
2019/05/28
4950
docker的使用与进阶
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。
Maynor
2021/12/06
1.1K0
docker的使用与进阶
微服务架构实战:云服务环境与Docker部署工具
完成微服务的开发之后,必须为其提供-一个合 适的分布式环境进行最终的部署和发布,才能充分发挥微服务架构的优势。这个环境首先应该是安全可靠的,并且是可以进行任意扩展的分布式环境。其次,它的基础设施应该是配备齐全的,并且稳定可靠、可扩展。这些基础设施包括数据库管理系统、文件管理系统、消息服务系统等服务,以及自动化测试和持续交付等工具。
愿天堂没有BUG
2022/10/28
6550
微服务架构实战:云服务环境与Docker部署工具
微服务项目部署--docker
忆愿
2024/07/23
1010
微服务项目部署--docker
原 使用docker部署微服务应用
docker安装 ubuntu 1. 安装docker apt install docker.io apt install docker-compose 2. docker 基本命令 docker images 查看docker镜像 docker rmi 删除镜像 docker ps 查看在运行的dokcer容器(-a 查看所有镜像) docker rm [容器名字或ID] 删除容器 docker部署单个应用 1. 下载java基础镜像到本地 docker pull java:8 2. 创建镜像的准备工作
yawn
2018/06/13
1.8K0
课件:Docker实用篇
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。
终有救赎
2023/10/16
3380
课件:Docker实用篇
相关推荐
Docker命令大总结,主要微服务项目部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档