基于 Docker 的 Spring Boot 项目部署演示,其中使用了 Redis、MySQL 和 RabbitMQ 中间件

news/2025/3/5 10:31:47/

这是一个基于 Docker 的 Spring Boot 项目部署演示,其中使用了 Redis、MySQL 和 RabbitMQ 中间件。

  1. 拉取 MySQL 镜像:

    docker pull mysql:latest
    
  2. 创建 MySQL 容器:

    docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORD=<密码> -e MYSQL_DATABASE=<数据库名> -e MYSQL_USER=<用户名> -e MYSQL_PASSWORD=<密码> -p 3306:3306 mysql:latest
    

    <密码><数据库名><用户名><密码> 替换为您自己的值。

  3. 拉取 Redis 镜像:

    docker pull redis:latest
    
  4. 创建 Redis 容器:

    docker run -d --name redis_container -p 6379:6379 redis:latest
    
  5. 拉取 RabbitMQ 镜像:

    docker pull rabbitmq:latest
    
  6. 创建 RabbitMQ 容器:

    docker run -d --name rabbitmq_container -p 5672:5672 -p 15672:15672 rabbitmq:latest
    
  7. 构建和运行 Spring Boot 项目:

    • 将您的 Spring Boot 项目打包成 JAR 文件。

    • 创建一个 Dockerfile 文件,内容如下:

      FROM adoptopenjdk:11-jre-hotspot
      COPY target/<your-jar-file>.jar app.jar
      ENTRYPOINT ["java", "-jar", "/app.jar"]
      

      <your-jar-file> 替换为您的 JAR 文件名。

    • 构建 Docker 镜像:

      docker build -t my_app .
      
    • 运行应用程序容器:

      docker run -d --name app_container -p 8080:8080 --link mysql_container --link redis_container --link rabbitmq_container my_app
      

    这将创建并运行一个包含 Spring Boot 应用程序的 Docker 容器,并连接到 MySQL、Redis 和 RabbitMQ 容器。

  8. 访问应用程序:
    在浏览器中访问 http://localhost:8080,您应该能够看到您的 Spring Boot 应用程序运行的主页。

这个示例演示了如何使用 Docker 部署一个基于 Spring Boot 的项目,并使用 Redis、MySQL 和 RabbitMQ 进行中间件支持。您可以根据您的实际需求和项目配置进行适当的调整和扩展。


http://www.ppmy.cn/news/92419.html

相关文章

python内置模块threading,线程

一、简介 线程模块&#xff0c;线程同时执行&#xff0c;线程谁快谁先执行&#xff1b;线程是一个单独的执行流&#xff0c;不同的线程实际上不会同时执行&#xff0c;只是线程之间切换间隔较短&#xff0c;看起来是同时执行 二、基本使用 整个py文件为主线程&#xff0c;里…

Selenium Grid- 让自动化分布式执行变得可能

什么是 Selenium Grid&#xff1f; Selenium Grid 是 Selenium 的三大组件之一&#xff0c;允许用户同时在不同的机器和系统上测试不同浏览器。 也就是说 Selenium Grid 支持分布式的测试执行。它可以让你的测试用例在一个分布式的执行环境中运行。 由上图可见&#xff0c;测试…

驱动中IO模型

驱动中的IO模型也分为三种&#xff1a;阻塞IO、非阻塞IO、IO多路复用 1.阻塞IO 当我们在应用程序中读取硬件数据时&#xff0c;不管硬件数据有没有准备好&#xff0c;read()函数不会阻塞而是继续向下执行。 在应用程序中使用open打开文件&#xff0c;并用调用read函数&#xf…

我在GPT小程序开发中踩过的5个坑

坑1&#xff1a;没有充分了解需求 在GPT小程序开发中&#xff0c;充分了解需求十分重要。如果你没有认真地与客户交流&#xff0c;并理解他们的需求和期望&#xff0c;那么你很可能会浪费很多时间在错误的方向上。 坑2&#xff1a;没有使用合适的开发工具 在GPT小程序开发中…

【Linux环境基础开发工具】编辑器-vim

写在前面 vim是一个编辑器&#xff0c;是在Linux下编程的常用工具&#xff0c;如果要学习在Linux下的编程&#xff0c; 那学会使用vim是一个必修课&#xff0c;今天我就来讲解如何使用vim编辑器。 目录 写在前面 什么是vim vim的常用命令 &#xff08;1&#xff09;gg&a…

AGV/AMR控制器--仙工

AGV/AMR控制器--仙工 1 行业介绍1.1 控制器概念1.2 行业发展1.3 竞争格局 2 仙工控制器 SRC2.1 介绍2.2 优势标准化软硬件&#xff0c;适配多种运动模型超强适配性&#xff0c;适配各大品牌支持车型多样&#xff0c;应对场景复杂灵活应对非标需求 2.3 产品矩阵2.4 实施工具Robo…

开发Search模块中的TypeNav商品分类菜单(过渡动画效果)、开发Home首页ListContainer组件与Floor组件等【VUE项目】

复习&#xff1a; 商品分类的三级列表由静态变为动态形式【获取服务器数据&#xff1a;解决跨域问题】函数防抖与节流【面试频率很高】路由跳转&#xff1a;声明式导航&#xff08;router-link&#xff09;、编程式导航编程式导航解决这个问题&#xff1a;自定义属性 1. 开发…

C++11 列表初始化initializer_list

引子 C11&#xff0c;是继C98后的一次有力更新&#xff0c;引进了很多好用的语法&#xff0c;STL也添加了几个新容器&#xff0c;也解决了很多的问题。本篇博客就学习一下C11列表初始化的新语法和 initializer_list 文章目录 引子一. 列表初始化二. initializer_list结束语 一…