当前位置: 首页 > news >正文

手动部署Java项目、nginx前端和mysql数据库到centos虚拟机

简介:整理自:SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)课程的飞书文档。

一、创建并运行新mysql容器,挂载本地目录

1、首先在虚拟机的root目录下创建mysql文件夹,在mysql文件夹下创建conf和init文件夹
将hm.cnf文件放入conf文件夹;将hmall.sql放入init文件夹。
在这里插入图片描述2、然后执行以下代码

# 1.删除原来的MySQL容器
docker rm -f mysql# 2.进入root目录
cd ~# 3.创建并运行新mysql容器,挂载本地目录
docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \-v ./mysql/data:/var/lib/mysql \-v ./mysql/conf:/etc/mysql/conf.d \-v ./mysql/init:/docker-entrypoint-initdb.d \mysql

二、部署Java项目和创建自定义网络

1、ide打开Java项目
确保application.yaml中的虚拟机IP地址正确
确保docker中的mysql密码正确。
确保file->Project Structure里jdk版本正确(一般jdk17)
打包成功后,src同级目录下会出现target文件夹
在这里插入图片描述
2、创建自定义网络并将之前创建的mysql容器连接自定义网络

# 1.首先通过命令创建一个网络
docker network create hmall# 2.然后查看网络
docker network ls# 将mysql容器连接自定义网络
docker network connect hmall mysql

3、将提前准备好的Dockerfile文件和target文件夹里的hm-service.jar放入虚拟机的root目录下
Dockerfile文件:

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY hm-service.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

然后依次运行以下命令:

# 1.构建项目镜像,不指定tag,则默认为latest
docker build -t hmall .# 2.查看镜像
docker images
# 结果
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
hmall         latest    0bb07b2c34b9   43 seconds ago   362MB
mysql         latest    3218b38490ce   17 months ago    516MB# 3.创建并运行容器,并通过--network将其加入hmall网络,这样才能通过容器名访问mysql
docker run -d --name hm --network hmall -p 8080:8080 hmall# 4.查看日志docker logs -f hm

4、测试是否部署成功
通过浏览器访问:如:http://你的虚拟机地址:8080/search/list;
“/search/list”这是Java项目里Controller类里的客户端请求路径,按自己java项目里的来测试。

三、部署前端

1、准备前端文件
hmall-portal和hmall-admin是前端代码,需要基于nginx部署。在课前资料中已经给大家提供了nginx的部署目录:
在这里插入图片描述
在这里插入图片描述

  • html是静态资源目录,我们需要把hmall-portal以及hmall-admin都复制进去
  • nginx.conf是nginx的配置文件,主要是完成对html下的两个静态资源目录做代理
    我们现在要做的就是把整个nginx目录上传到虚拟机的/root目录下:
    在这里插入图片描述
    2、前端端口配置与nginx.conf文件配置Java应用容器名
    由于需要让nginx同时代理hmall-portal和hmall-admin两套前端资源,因此我们需要暴露两个端口:
  • 18080:对应hmall-portal(用户端)
  • 18081:对应hmall-admin(管理端)

nginx.conf文件配置
在这里插入图片描述
3、创建并运行nginx容器并连接自定义网络
注意:mysql容器、java应用容器和nginx容器一段要在同一个自定义网络里
运行以下命令:

docker run -d \--name nginx \-p 18080:18080 \-p 18081:18081 \-v /root/nginx/html:/usr/share/nginx/html \-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \--network heima\nginx

4、测试前后端连接

# 查看日志docker logs -f hm

通过浏览器访问:如:http://你的虚拟机地址:18080;
在前端页面查看数据库数据是否显示,如果显示数据且日志中有响应则部署成功。


http://www.mrgr.cn/news/55111.html

相关文章:

  • nginx中的HTTP 负载均衡
  • OCR经典神经网络(三)LayoutLM v2算法原理及其在发票数据集上的应用(NER及RE)
  • Linux:线程及其控制
  • 电影评论网站开发:Spring Boot技术指南
  • 数据结构编程实践20讲(Python版)—13图形数据结构
  • 程序员必须掌握的消息中间件-RocketMQ
  • 简单的界面用于控制自动点击器
  • 二叉树算法之 Fenwick 树(Binary Indexed Tree, BIT)详细解读
  • 在Smarty模板中如何用自定义函数
  • C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
  • JS数组去重
  • 【算法】小红的ABC
  • 关于region_to_label算子的想法
  • 【深度学习中的注意力机制2】11种主流注意力机制112个创新研究paper+代码——多头注意力机制(Multi-Head Attention, MHA)
  • AG32 MCU家族添加新成员
  • 汽车电子笔记之-014:一场FIFO的思考引发将汽车电子DTC相关 - 故障发生前后关键数据记录并回读的功能浅研发
  • edge浏览器:你的连接不是专用连接
  • Java获取指定目录下的文件名,并自定义排序
  • 关于鸿蒙学习之遇到的问题——ERROR: Invalid dependency entry
  • 神奇的数据结构 —— 跳表
  • 道路车辆功能安全 ISO 26262标准(6-1)—软件级产品开发
  • Java 异步编程——异步编排(CompletableFuture)
  • 三周精通FastAPI:4 使用请求从客户端(例如浏览器)向 API 发送数据
  • SCTF-2024-wp
  • LabVIEW换流变换器智能巡检系统
  • 流量分类实验