【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-testdocker 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.mzph.cn/news/189216.shtml

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

相关文章

mysql 查询提取json 并去除双引号

1.建表语句 CREATE TABLE uset_test_demo (id bigint(20) NOT NULL AUTO_INCREMENT,context text,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT4 DEFAULT CHARSETutf8;2.源数据 {"title": "Harry Potter","author": "J.K. Rowling&qu…

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

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

ubuntu系统下搭建本地物联网mqtt服务器的步骤

那么假如我们需要做一些终端设备,例如温湿度传感器、光照等物联网采集设备要接入呢?怎么样才能将数据报送到服务器呢? 以下内容基于我们ubuntu系统下的emqx成功启动的基础上。我们可以用浏览器键入控制板的地址,如果启动成功&…

特征相关性计较

Pearson相关系数 用于度量两个连续型变量之间的线性关系。取值范围在-1到1之间,0表示无线性关系,1表示完全正相关,-1表示完全负相关 import pandas as pd# 创建一个包含两个连续型变量的DataFrame data {Variable1: [1, 2, 3, 4, 5],Vari…

iOS简单理解区分MVC、MVP、MVVM

MVC、MVP、MVVM 前言 这篇文章简单介绍MVC、MVP和MVVM三种架构,并配上一个简单的Swift demo来区分MVC和MVVM两种架构。 MVC 传统MVC 下图是传统结构MVC,可以看到这种结构是紧耦合的,不推荐使用。 苹果的MVC 如下图,这是苹果…

AI产业前瞻报告:探讨GPTs背后的产业逻辑:拉开AIGC应用生态的帷幕

今天分享的是AI系列深度研究报告:《AI产业前瞻报告:探讨GPTs背后的产业逻辑:拉开AIGC应用生态的帷幕》。 (报告出品方:光大证券) 报告共计:13页 1、GPTs 拉开 AIGC 应用生态的帷幕 1.1、 Ope…

系列二十二、各种注解

一、Import # 用法 1)Import(User.class):如果导入的是配置类,将会按照配置类正常解析,如果是个普通类就会解析成bean 2)Import(实现了ImportSelector接口的类.class):可以一次性注册…

Python爬虫基础之Scrapy框架详解

目录 1. 简介2. Scrapy的安装3. Scrapy的架构4. Scrapy的数据流程5. Scrapy开发流程5.1 创建项目5.2 创建Spider5.3 创建Item5.4 编写Spider5.5 运行Spider 参考文献 原文地址:https://program-park.top/2023/12/01/reptile_5/ 本文章中所有内容仅供学习交流使用&am…

0Ω电阻最大过流能力及作用用途

0Ω电阻最大过流能力及作用用途 0Ω电阻过流能力0Ω电阻的作用 0Ω电阻过流能力 0Ω电阻不一定是真正的0Ω电阻,0Ω电阻存在一定的阻值偏差,主要看生产电阻厂商做哪种了。厂商都是根据电阻标准文件 EN60115-2, 里头0Ω电阻实际最大阻值有 10…

JAVA全栈开发 day15_集合(Set接口、增强For循环、Map体系)

一、增加for遍历集合 语法: for(数据类型 变量名: 数组名或集合){​ }//集合遍历 ,推荐使用增加for 1.静态导入 注意事项: 方法必须是静态注意不要和本类的方法同名,如果同名,记得加前缀,由此可…

Git——分支应用进阶

主要内容包括以下几个方面: 长期分支和短期分支的类型以及用途。多种分支模型,其中包括基于工作流的主题分支。不同分支模型的发布流程。在多个预览版程序中使用分支修复安全问题。远程跟踪分支和refspecs规范,以及默认远程版本库配置。拉取…

Mongodb 开启oplog,java监听oplog并写入关系型数据库

开启Oplog windows mongodb bin目录下找到配置文件/bin/mongod.cfg,配置如下: replication:replSetName: localoplogSizeMB: 1024双击mongo.exe 执行 rs.initiate({_id: "local", members: [{_id: 0, host: "localhost:27017"}]})若出现如…

深入理解前端路由:构建现代 Web 应用的基石(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

多线程(初阶六:单例模式)

一、单例模式的简单介绍 二、饿汉模式 三、懒汉模式 四、饿汉模式和懒汉模式的线程安全问题分析 一、单例模式的简单介绍 单例模式是一种设计模式,其中设计模式是软性的规定,与它关联的框架是硬性的规定,这些都是大佬已经设计好了的&…

QT线程的使用 循环中程序的等待

QT线程的使用 循环中程序的等待 先看效果1 pro文件2 头文件3 源文件4 ui文件先看效果 1 pro文件 QT += concurrent2 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H

简述MyBatis、MyBatis-Plus、以及MyBatis-Plus的简单运用

什么是MyBatis MyBatis是一个开源的Java持久层框架,用于简化与关系型数据库的交互。它通过将SQL语句与Java代码进行分离,提供了一种优雅的方式来处理数据库操作。 MyBatis的核心思想是将SQL语句与Java方法进行映射,使得开发人员可以通过配置…

集成开发环境PyCharm的使用【侯小啾python领航计划系列(三)】

集成开发环境 PyCharm 的使用【侯小啾python领航计划系列(三)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

【Vue3+Ts项目】硅谷甄选 — 搭建后台管理系统模板

一、 项目初始化 一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提交规范(即统一提交信息),需要使用pre…

Python | 轻量ORM框架Peewee的基础使用(增删改查、自动创建模型类、事务装饰器)

文章目录 01 简介02 安装03 自动创建模型类04 基础使用4.1 查询4.2 新增4.3 更新4.4 删除 05 事务 01 简介 在使用python开发的过程中,有时需要一些简单的数据库操作,而Peewee正是理想的选择,它是一个小巧而灵活的 Python ORM(对…

hadoop-3.3.5安装过程

准备资源三台虚拟机: 1)准备3台服务器(关闭防火墙、静态IP、主机名称) 2)安装JDK 3)配置环境变量 4)安装Hadoop 5)配置环境变量 安装虚拟机(略)--1台即…