docker Compose部署springboot+vue前端端分离

yizhihongxing

下面是完整攻略:

1. 前置条件

在进行 Docker Compose 部署 Spring Boot + Vue 前端后端分离前,需要确保已经具备一下前置条件:

  • 熟悉 Docker 和 Docker Compose 的基本使用方法
  • 已经安装好 Docker 和 Docker Compose 环境
  • 已经有 Spring Boot 和 Vue 的项目代码,并能正常运行

2. 创建 Docker 镜像

首先,需要为 Spring Boot 和 Vue 项目创建相应的 Docker 镜像。假设 Spring Boot 项目的 Dockerfile 和 Vue 项目的 Dockerfile 分别为 Dockerfile.springDockerfile.vue,则可使用以下命令在项目根目录下分别创建两个 Docker 镜像:

docker build -t spring-app -f Dockerfile.spring .
docker build -t vue-app -f Dockerfile.vue .

其中,-t 参数指定镜像名称,. 表示当前目录。

3. 创建 Docker Compose 文件

接下来,需要创建 Docker Compose 文件,用于描述 Spring Boot 和 Vue 两个镜像之间的依赖关系和启动顺序。假设 Compose 文件名为 docker-compose.yml,则其内容如下:

version: '3.9'
services:
  spring-app:
    build:
      context: .
      dockerfile: Dockerfile.spring
    ports:
      - "9090:9090"
    depends_on:
      - vue-app
  vue-app:
    build:
      context: .
      dockerfile: Dockerfile.vue
    ports:
      - "8080:8080"

其中,services 下分别定义了 Spring Boot 和 Vue 两个服务,build 部分指定了 Dockerfile 的位置,ports 部分指定了服务的端口映射,depends_on 部分声明了服务之间的依赖关系。

4. 启动 Docker 容器

使用以下命令启动 Docker 容器:

docker-compose up

该命令会自动拉取镜像、创建容器并启动。在 Docker 启动之后,可以在浏览器中访问 http://localhost:8080,即可看到 Vue 的页面。

5. 示例说明

下面分别以 Spring Boot 项目和 Vue 项目为例,讲解如何将其分别打包为 Docker 镜像并使用 Docker Compose 启动。

示例 1:Spring Boot 项目

假设 Spring Boot 项目的 Dockerfile 如下:

FROM openjdk:11-jdk-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

该 Dockerfile 使用了 openjdk:11-jdk-slim 镜像,并将项目中的 jar 文件拷贝到容器中。为了构建镜像,可以使用以下命令:

docker build -t my-spring-boot-app -f Dockerfile .

其中,my-spring-boot-app 是自定义的镜像名称。

构建成功后,可以通过以下命令启动该容器:

docker run -p 8080:8080 my-spring-boot-app

该命令将容器内部的 8080 端口映射到主机的 8080 端口上。

示例 2:Vue 项目

假设 Vue 项目的 Dockerfile 如下:

# production environment
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 8080
CMD ["npm", "run", "serve"]

该 Dockerfile 使用了 node:lts-alpine 镜像,并将 Vue 项目拷贝到容器中,最后运行 npm run build 命令编译 Vue 项目。为了构建镜像,可以使用以下命令:

docker build -t my-vue-app -f Dockerfile .

其中,my-vue-app 是自定义的镜像名称。

构建成功后,可以通过以下命令启动该容器:

docker run -p 8080:8080 my-vue-app

该命令将容器内部的 8080 端口映射到主机的 8080 端口上。

示例 3:使用 Docker Compose 启动

通过上述示例可以看出,在使用 Docker Compose 启动 Spring Boot 和 Vue 两个服务时,不需要手动编译、打包、启动容器,只需要在 Compose 文件中定义好服务之间的依赖关系和端口映射,就可以通过一个命令快速启动整个架构。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker Compose部署springboot+vue前端端分离 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 关于MySQL的存储过程与存储函数

    MySQL的存储过程和存储函数非常强大,可以使用户能够创建逻辑上复杂的操作并在数据库中存储它们,可以重复使用和调用。下面是关于MySQL的存储过程与存储函数的完整攻略。 存储过程与存储函数 存储过程 什么是存储过程? 存储过程是一组预编译SQL语句的集合,类似于应用程序中的函数。存储过程可以接受输入参数和返回输出参数,还可以采用控制流语句(如IF、WHILE…

    database 2023年5月22日
    00
  • MySQL数据库索引的最左匹配原则

    MySQL数据库索引的最左匹配原则是指:在查询时,MySQL会从联合索引最左边的列开始匹配,只有最左边的那个索引列被用到了,才会使用其他的索引列。 例如,如果有以下查询语句: SELECT * FROM mytable WHERE col1 = ‘abc’ AND col2 = ‘123’; 假设mytable表上创建了一个联合索引(col1, col2),…

    database 2023年5月22日
    00
  • MySQL 搭建MHA架构部署的步骤

    MySQL Master High Availability,简称MHA,是一个开源的高可用性方案,可用于MySQL数据库的容错和故障转移。以下是MySQL搭建MHA架构部署的步骤: 安装和配置MySQL 在实施MHA之前,确保在每个MySQL实例运行在相同的操作系统和版本。 安装MySQL服务器并将其配置为主服务器,并设置从服务器以恢复主服务器上的数据。 …

    database 2023年5月18日
    00
  • mysql sql语句性能调优简单实例

    MySQL SQL语句性能调优是MySQL优化的一个重要方面,通常是通过优化SQL语句,使其执行效率更高,提升MySQL数据库的性能。下面是一个MySQL SQL语句性能调优的简单实例攻略,包含以下步骤: 1. 编写测试SQL语句 在调优之前,需要编写测试SQL语句,并通过MySQL的EXPLAIN命令查看其执行计划,了解语句执行的具体过程。下面是一个简单的…

    database 2023年5月22日
    00
  • Django的Session存储Redis环境配置

      第一步:在项目目录下的settings.py中MIDDLEWARE中加上中间件: # session中间件Django项目默认启用Session ‘django.contrib.sessions.middleware.SessionMiddleware’, 第二步:在redis中保存session,需要引入第三方扩展,我们可以使用django-redis…

    Redis 2023年4月13日
    00
  • asp常用函数集合,非常不错以后研究第3/4页

    首先,我假设你已经了解了ASP的基本知识,包括其工作原理和常用函数等。 在ASP中,有许多常用的函数来实现各种功能。这些函数非常实用,可以帮助我们更方便地开发ASP网站。 关于asp常用函数集合的攻略,我会分为以下几个部分来进行详细讲解: ASP常用函数集合的概述。 字符串相关的函数。 Len、Left、Right、Mid、Instr等函数。 示例:在字符串…

    database 2023年5月21日
    00
  • oracle关键字作为字段名使用方法

    当使用Oracle关键字作为字段名时,需要用双引号将字段名括起来,这样Oracle才能识别为字段名而不是关键字。 下面是使用Oracle关键字作为字段名的示例: 示例1: 假设有一个Oracle表格,表格名为Students,字段包括姓名、年龄等,而其中一个字段名为“SELECT”,则可以按照以下方式进行查询: SELECT "SELECT&quo…

    database 2023年5月21日
    00
  • MySQL prepare语句的SQL语法

    MySQL中的prepare语句是一种高级的编程方式,它可以让MySQL服务器预处理SQL语句,然后再执行该语句。这样做的好处是可以大大提高SQL语句的执行效率,同时也可以防止SQL注入攻击。下面是prepare语句的SQL语法和示例说明。 1. SQL语法 PREPARE statement_name FROM preparable_stmt 其中,sta…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部