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

news2024/11/19 11:21:40

目录

 一、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访问即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++ 内存管理(1)

文章目录 C/C 内存划分静态和动态内存C语言的动态内存分配函数mallocfreecallocrealloc 常见内存使用错误 C/C 内存划分 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储…

【QuickSort】单边快排思路及实现

思路: (1)首先定义一个递归函数:qucikSort(int [ ] arr,int l,int r)。函数的定义:给定一个数组arr,对它在[l,r]这个区间内的元素进行排序,从而使得整个数组在[l,r]这个区间内有序。 &#xff0…

NRF24L01 无线收发模块与 Arduino 的应用

NRF24L01 是一款常用的无线收发模块,与 Arduino 兼容性良好,可以用于实现无线通信和数据传输。本文将介绍如何将 NRF24L01 模块与 Arduino 配合使用,包括硬件的连接和配置,以及相应的代码示例。 一、引言 NRF24L01 是一款基于 2.…

Linux基础项目开发1:量产工具——文字系统(四)

前言: 前面我们已经把显示系统,输入系统的框架搭建好了,那么有了输入和显示,显示的内容应该是什么呢?这节就要让我们一起对显示的内容,文字系统进行搭建。 目录 一、数据结构抽象 1.描述一个文字的位图&a…

数字图像处理(实践篇) 十六 基于分水岭算法的图像分割

目录 一 分水岭算法 二 利用OpenCV实现分水岭算法的过程 三 实践 一 分水岭算法 基于任何灰度图像都可以视为地形表面,其中高强度表示山峰和山丘,而低强度表示山谷。首先,开始用不同颜色的水(标签)填充每个孤立的山…

循环单向链表(详解)

循环单向链表原理 循环单项链表项目结构 头文件RecycleLinlList.h 头文件具体代码 #ifndef RECYCLRLINKLIST #define RECYCLRLINKLIST#include <stdio.h> #include <stdlib.h>// 宏定义 #define CIRCLELINKLIST_TRUE 1 #define CIRCLELINKLIST_FALSE 0 // 链表…

7.2 Windows驱动开发:内核注册并监控对象回调

在笔者上一篇文章《内核枚举进程与线程ObCall回调》简单介绍了如何枚举系统中已经存在的进程与线程回调&#xff0c;本章LyShark将通过对象回调实现对进程线程的句柄监控&#xff0c;在内核中提供了ObRegisterCallbacks回调&#xff0c;使用这个内核回调函数&#xff0c;可注册…

vscode如何在没有网络的情况下安装插件

vscode如何在没有网络的情况下安装插件 start 遇到没有网络的电脑&#xff0c;无法直接从插件市场安装vscode的插件。写一下 vscode 插件离线安装的方法. 解决方案 目标电脑没有可以安装插件的网络&#xff0c;那我们只能在有网络的环境下载好我们的插件。然后拷贝软件到无…

localStorage 和sessionStorage

localStorage 和 sessionStorage 是浏览器提供的两种客户端存储数据的方式&#xff1a; 生命周期&#xff1a; localStorage&#xff1a; 存储在 localStorage 中的数据在浏览器关闭后仍然保留&#xff0c;直到被显式删除或浏览器清除缓存。sessionStorage&#xff1a; 存储在 …

【零基础入门Docker】Dockerfile中的USER指令以及dockerfile命令详解

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;Docker零基础入门专栏 目录 第 1 步&#xff1a;创建 Dockerfile 第 2 步&#xff1a;构建 Docker 镜像 第 3 步&#xff1a;运行 Docker 容器 第 4 步&#xff1a;验证输出 dockerfile命令详解 最佳实践 默认情况下…

对el-select封装成组件使用

效果与直接使用el-select一样&#xff0c;多处用el-select显得代码冗余就进行了封装 效果图&#xff1a; el-select封装&#xff1a; <template><div class"my-select"><el-selectv-model"person.modelValue":placeholder"placehold…

【广州华锐视点】机械零件拆装VR仿真教学系统

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐走进我们的生活。在教育领域&#xff0c;VR技术的应用也日益广泛&#xff0c;为学生提供了更加生动、直观的学习体验。广州华锐视点开发的机械零件拆装VR仿真教学系统作为一种新兴的教学方式&…

oops-framework框架 之 初始了解(一)

引擎&#xff1a;CocosCreator 环境&#xff1a; Mac Gitee: oops-framework 简介 oops-framework是由作者dgflash编写&#xff0c;基于CocosCreator 3.x而实现的开源框架。 该框架以插件形式存在&#xff0c;主要目的是为了降低与项目的耦合&#xff0c;并且通过插件内部的…

【代码】基于麻雀搜索优化Kmeans图像分割算法

程序名称&#xff1a;基于麻雀搜索优化Kmeans图像分割算法 实现平台&#xff1a;matlab 代码简介&#xff1a;首先使用麻雀搜索优化算法来确定 K-means 算法的初始质心位置&#xff0c;然后进行传统的 K-means 聚类。这样做的目的是为了避免 K-means 算法陷入局部最优解&…

Mybatis 的操作(续集)

Mybatis 是一款优秀的 持久性 框架,用于简化 JDBC 的开发 持久层 : 指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库的 简单来说 Mybatis 是更简单完成程序和数据库交互的框架 Mybatis 的写法有两种 : 1.xml 2.注解 这两者各有利弊,后面进行总结 Mybati…

HTML5 的全局属性 hidden 和 display:none 的关系

目录 1&#xff0c;hidden 和 display:none 的关系2&#xff0c;其他隐藏元素的方式2.1&#xff0c;语意上的隐藏2.2&#xff0c;视觉上的隐藏 1&#xff0c;hidden 和 display:none 的关系 hidden - MDN 参考 一句话总结&#xff1a;hidden 是HTML5 新增的全局布尔属性&…

播放器开发(七):音视频同步实现

目录 学习课题&#xff1a;逐步构建开发播放器【QT5 FFmpeg6 SDL2】 原理 简单分析&#xff1a; 下图简单描述了在一个播放过程中&#xff0c;假设我们先播放音频&#xff0c;对比一个公共时间轴&#xff0c;视频就会始终比音频慢0.003s。 我们在日常中用一些播放器播放视频…

Oracle:左连接、右连接、全外连接、(+)号详解

目录 Oracle 左连接、右连接、全外连接、&#xff08;&#xff09;号详解 1、左外连接&#xff08;LEFT OUTER JOIN/ LEFT JOIN&#xff09; 2、右外连接&#xff08;RIGHT OUTER JOIN/RIGHT JOIN&#xff09; 3、全外连接&#xff08;FULL OUTER JOIN/FULL JOIN&#xff0…

013 OpenCV copyMakeBorder(padding)

目录 一、环境 二、原理 三、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、原理 cv.copyMakeBorder是OpenCV库中的一个函数&#xff0c;用于在图像周围添加边框&#xff08;padding&#xff09;。这个函数可以用于图…

​iOS Class Guard github用法、工作原理和安装详解及使用经验总结

iOS Class Guard是一个用于OC类、协议、属性和方法名混淆的命令行工具。它是class-dump的扩展。这个工具会生成一个symbol table&#xff0c;这个table在编译期间会包含进工程中。iOS-Class-Guard能有效的隐藏绝大多数的类、协议、方法、属性和 实例变量 名。iOS-Class-Guard不…