【SpringBoot3+Vue3】七【后续2】【番外篇】- (使用docke部署)

目录

 一、maven打包后端服务

1、clean

2、package

3、查看jar包

二、部署java后端服务

1、使用dockerfile构建一个java17的镜像

1.1 使用dokcerfile构建容器命令

1.2 方式一 将jar打包进容器镜像

1.3  方式二 jar不打包进容器镜像,通过映射主机目录映射方式

1.4 执行构建镜像命令

2、查看验证

3、启动容器 

4、 进入容器命令(bash/sh 这里有差异有的不需要/sh)

5、使用前端页面验证

三、前端打包 

1、控制台执行打包命令

2、验证

四、部署前端服务

1、创建文件目录

2、拉取ngnix镜像

3、启动服务

4、copy默认文件到宿主机目录

5、 将第3步的容器删除

 6、 将前端代码放入到宿主机html目录

7、修改自己需要的 nginx.conf

8、启动容器挂载目录 

9、使用前端页面验证


前言:没有使用jenkins构建打包、部署,本文使用dockerfile的方式构建容器启动jar包

 一、maven打包后端服务

1、clean

2、package

3、查看jar包

二、部署java后端服务

1、使用dockerfile构建一个java17的镜像

1.1 使用dokcerfile构建容器命令

FROM openjdk:17-jdk-alpine  
  
# 设置工作目录  
WORKDIR /app  
  
# 复制项目文件到工作目录  
COPY . /app  
  
# 编译项目  (我没有使用)
# RUN javac Main.java  
  
# 设置容器启动命令  ,我使用的是启动jar包命令,自己优化了一下
CMD ["java", "Main"]

具体dockerfile文件  给动力  私聊

1.2 方式一 将jar打包进容器镜像

这种方式就是吧jar包放在当前目录,再执行构建dockerfile命令,不便捷换包

1.3  方式二 jar不打包进容器镜像,通过映射主机目录映射方式

这个主要在执行启动,映射一下目录,我使用的是这种方式

1.4 执行构建镜像命令

dockerfile文件设置好了之后,再对应目录执行

docker build -t my-java17-app:20231201 .

2、查看验证

3、启动容器 

将jar包放到主机目录,然后执行下面命令

docker run -p  5900:5900 -d --name=springbootvue -v /opt/myapp/springbootvue:/app  --restart=always my-java17-app:20231201

4、 进入容器命令(bash/sh 这里有差异有的不需要/sh)

docker exec -it 117b0e2e7101 bash/sh

5、使用前端页面验证

三、前端打包 

1、控制台执行打包命令

npm run build

2、验证

打包成功会新增dist目录

四、部署前端服务

1、创建文件目录

mkdir -p /opt/myapp/springbootvuemy/nginx/{conf,html,logs}

2、拉取ngnix镜像

docker pull nginx:latest

3、启动服务

docker run --name nginx-test -p 8080:80 -d nginx

4、copy默认文件到宿主机目录

如果之前有了 第三步就不需要了,直接复制进去即可,4也可以省略,明白这步干嘛就行

docker cp nginx-test:/etc/nginx/nginx.conf /opt/myapp/springbootvuemy/nginx/nginx.conf
docker cp nginx-test:/etc/nginx/conf.d/default.conf /opt/myapp/springbootvuemy/nginx/conf/default.conf

5、 将第3步的容器删除

docker stop nginx-test

docker rm nginx-test

 6、 将前端代码放入到宿主机html目录

7、修改自己需要的 nginx.conf

重要,略,我自己网盘目录存档了

8、启动容器挂载目录 

docker run --restart=always --name=nginxvue -it -p 80:80 -v /opt/myapp/springbootvuemy/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/myapp/springbootvuemy/nginx/logs:/var/log/nginx -v /opt/myapp/springbootvuemy/nginx/html:/usr/share/nginx/html  -d nginx:latest

9、进入容器命令

docker exec -it 117b0e2e7101 bash

9、使用前端页面验证

使用ip访问即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/209466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数字图像处理】边缘检测

边缘检测是一种图像处理技术,用于在图像中识别和提取物体边缘的信息,广泛应用于计算机视觉和图像分析领域。本文主要介绍数字图像边缘检测的基本原理,并记录在紫光同创 PGL22G FPGA 平台的布署与实现过程。 目录 1 边缘检测原理 2 FPGA 布署…

持续集成交付CICD:GitLabCI 运行前后端项目

目录 一、理论 1.spring项目自动构建 2.阿里云云效 Maven 3.Maven安装 4.Go安装 5.NPM安装 二、实验 1.GitLabCI 运行Maven项目 2.GitLabCI 运行Go项目 3.GitLabCI 运行NPM项目 三、问题 1.前端脚手架如何初始化项目 2.NPM下载如何指定 3.Go项目下载源如何指定 …

基于DigiThread的仿真模型调参功能

仿真模型调参是指通过调整模型内部的参数值,使仿真模型的输出更符合实际系统的行为或者预期结果的过程。 仿真过程中,往往需要频繁对模型参数进行调整,通过观察不同参数下系统整体的运行情况,实现系统的性能、可靠性和效率的优化…

UDP通信

UDP通信-快速入门 客户端程序 服务端程序 步骤 UDP通信-多发多收 客户端 服务端 步骤

Sentinel核心类解读:Node

基本介绍 Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口。Node中保存了对资源的实时数据的统计,Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的: Holds real-time statistics…

抑郁症中西医治疗对比?

抑郁症是一种常见的心理障碍,治疗方法包括中医和西医两种。下面就抑郁症中西医治疗进行对比: 治疗方法:中医治疗抑郁症强调整体观念和辨证论治,通过调理身体各部分的功能,达到治疗抑郁症的目的。中医治疗抑郁症多采用天…

YOLOv8创新魔改教程(一)如何进行模块创新

YOLOv8创新魔改教程(一)如何进行模块创新 YOLOv8创新魔改教程 本人研一,最近好多朋友问我要如何修改模型创新模块,就想着不如直接开个专栏歇一歇文章,也算是对自己学习的总结,本专栏以YOLOv8为例&#xf…

FH Admin Shiro反序列化漏洞复现

0x01 产品简介 FH Admin 是一款 java 快速开发平台。 0x02 漏洞概述 FH Admin CMS 存在 shiro 反序列化漏洞,该漏洞源于软件存在硬编码的 shiro-key,攻击者可利用该 key 生成恶意的序列化数据,在服务器上执行任意代码,执行系统命…

HT71778 实时音频信号跟踪同步升压转换器的特性

HT71778是一款高功率、全集成升压转换器,集成16mΩ功率开关管和18mΩ同步整流管,为便携式系统提供G效的小尺寸处理方案。 HT71778 实时音频信号跟踪同步升压转换器的特性: ・实时音频信号跟踪的电源供电 SN 短接地, VIN 2.7~4.5V, VOUT 5…

Leetcode—2661.找出叠涂元素【中等】

2023每日刷题(四十六) Leetcode—2661.找出叠涂元素 题意解读 题目意思就是,按照arr数组从左到右的顺序遍历各个arr[i],涂抹这个值在矩阵中对应位置的网格,一旦你发现它所在的行或者列满员了,就返回这个i…

自定义Vue的DockPanel-Layout

创作来源 1、在vue项目中需要有停靠、浮动、面板布局等需求,如arcgis的界面布局 2、在npm中搜索了关于vue的docklayout组件,搜索后就一个组件imengyu/vue-dock-layout,截图如下,该组件没有停靠组件,没有浮动组件&…

Linux学习——模拟实现mybash小程序

目录 一,跟正宗的bash见个面 二,实现一个山寨的bash 1.提示符 2.输入命令与回显命令 3.解析命令 4.执行命令 5.执行逻辑 三,全部代码 一,跟正宗的bash见个面 在这篇文章中,我会写一个myshell小程序。这个小程序…

Linux中top命令输出日志分析?

以下是对输出的各部分的解释: 09:54:34:系统当前时间。up 161 days, 2:08:系统已经运行了161天2小时8分钟。5 users:有5个用户登录系统。load average: 0.13, 0.08, 0.05:系统的1分钟、5分钟、15分钟的平均负载。负载…

数据结构与算法之美学习笔记:29 | 堆的应用:如何快速获取到Top 10最热门的搜索关键词?

目录 前言堆的应用一:优先级队列堆的应用二:利用堆求 Top K堆的应用三:利用堆求中位数解答开篇内容小结 前言 本节课程思维导图: 搜索引擎的热门搜索排行榜功能你用过吗?搜索引擎每天会接收大量的用户搜索请求&#x…

Opencv制作电子签名(涉及知识点:像素过滤,图片通用resize函数,像素大于某个阈值则赋值为其它的像素值)

import cv2def resize_by_ratio(image, widthNone, heightNone, intercv2.INTER_AREA):img_new_size None(h, w) image.shape[:2] # 获得高度和宽度if width is None and height is None: # 如果输入的宽度和高度都为空return image # 直接返回原图if width is None:h_ratio …

手机上的记事本怎么打开?安卓手机通用的记事本APP

有不少上班族发现,自己想要在电脑上随手记录一些工作文字内容,直接使用电脑上的记事本工具来编辑文字是比较便捷的。但是如果想要在手机上记录文字内容,就找不到手机上的记事本了。那么手机上的记事本怎么打开?安卓手机通用的记事…

MySQL:找回root密码

一、情景描述 我们在日常学习中,经常会忘记自己的虚拟机中MySQL的root密码。 这个时候,我们要想办法重置root密码,从而,解决root登陆问题。 二、解决办法 1、修改my.cnf配置文件并重启MySQL 通过修改配置文件,来跳…

Symbol()和迭代器生成器

目录 1、Symbol() 2、迭代器生成器 执行流程 模拟生成器函数 for of 遍历迭代选择器 yield * Generator函数应用 1、Symbol() Symbol表示独一无二的值 const s1 Symbol(a)const s2 Symbol(a)console.log(s1 s2) // fa…

Elasticsearch 如何处理 Aggs 顺序中的大写字母和小写字母?

Elasticsearch 排序允许你根据特定条件对搜索结果进行排序。 然而,在排序时处理区分大小写时,Elasticsearch 将大写和小写字母视为不同的字符,分别对它们进行排序。 这是因为 ASCII 表顺序是从大写 A 到小写 z。 默认情况下,Elas…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器,可以用来分析SQL执行计划,需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…