Docker部署Vue+Springboot项目

一、部署Springboot项目

  1.1先将本地的java项目打成jar包。

         再右上角进行maven操作。

  1.2将jar包上传到服务器当中。

先再目录/home 下创建一个文件夹(classRoom)用于存放后端打镜像时需要的文件。

如果是服务器的话可以直接将文件拖拽到想要转移的地方。

因为我们需要将这个jar包打成镜像放在docker上运行,那么我们需要一个配置文件用于镜像的运行。图片中的Dockerfile就是这个配置文件,要注意这个两个文件要放在同一目录下。那么现在就开始来编写配置文件。

DockerFile:(这里里面我只写了必须的配置,其他配置都走的是默认配置)

#表示从名为 java 的官方镜像库中拉取标签为 8 的镜像作为基础镜像
FROM java:8   
#表示将构建上下文中的 classroom-realtime-feedback-0.0.1-SNAPSHOT.jar 文件复制到镜像中的 #classroom-realtime-feedback.jar
COPY classroom-realtime-feedback-0.0.1-SNAPSHOT.jar classroom-realtime-feedback.jar
#声明镜像中的应用程序会监听 8080 端口
EXPOSE 8080
#表示定义镜像的入口点,即当容器启动时,会执行 java -jar classroom-realtime-feedback.jar 命令来运行应用程序
ENTRYPOINT ["java","-jar","classroom-realtime-feedback.jar"]

1.3开始构建镜像并运行容器。

        要在classRom目录下执行这条语句,注意最后还有一个“ ”,这个点表示的是当前目目录,表示使用当前目录下的Dockerfile文件进行镜像的构建一个名字为classroom-realtime-feedback的镜像。

执行完语句之后我们可以看看有没有这个镜像。

那么后面我们就开始创建个容器执行这个镜像。执行下面这条语句,可以看到我写了三个端口映射,是因为我这个是websocket项目,有两个端口是websocket监听的。要注意如果你们项目有多个端口,那么一定要进行映射,不然请求就打不到后端。我之前就是只监听了一个端口导致没有ws请求没有建立连接。所以这个端口映射是因项目而异。

        这个语句的意思就是为名为classroom-realtime-feedback的镜像创建一个容器名为classroom-realtime-feedback并运行。

 通过docker ps命令可以看到我们这个容器正在运行:

到此位置springboot项目已经部署成功。

二、部署vue项目(使用nginx配合转发)

注意vue项目部署有一个大坑!!!

        就是我正常部署完成后我的前端请求一直打不到后端,报post 405错误,然后我搁往上查了半天好多博客都说是什么nginx无法使用Post请求访问静态资源,要用GET请求。然后我按照他们的要求进行修改结果还是没成功,结果最后发现并不是他们说的那样。

        是因为我之前再vue项目中使用了路由转发。但是这个配置只有再开发环境时能生效,再生产环境时,无法生效,就是根本走不到这里来。所以导致url没有进行处理,后端没有对应的请求接口。再生产环境中我们要使用nginx进行转发。

下面我们进行正式的Vue项目的部署 :

  2.1 将本地vue项目使用npm run build项目进行构建。

    

2.2将本地的dist文件夹上传到服务器当中 

现在服务器中创建一个文件夹 vue -nginx用于存放关于前端的文件

然后将dist文件拉去到vue-nginx文件夹中。因为我们需要以nginx为基础镜像构建镜像,所以我们还得编写一下nginx的配置文件(default.conf),用在其中编写适合我们项目的转发规则:

default.conf:

我再其中写的转发规则可以按照自己的路径规则进行改写

server {
    listen       80;
    server_name  自己服务器的ip; # 修改为docker服务宿主机的ip
 #这是最后进行匹配的
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
        #error_page 405 =200 @405; 
    }
#当url中有/test/的会将这个后面的和proxy_pass的路径进行拼接再进行转发
#如/test/login会变成自己后端ip+端口/login,然后进行转发
location  ^~/test/ {
           proxy_set_header Host $host; 
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
             #ip为后端服务地址
             proxy_pass 自己后端ip+端口/;
}
 error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

编写完nginx配置文件那么我们需要编写镜像配置文件Dockerfile:

FROM nginx
# 设置维护者信息
MAINTAINER wuing
# 删除默认的配置文件
RUN rm /etc/nginx/conf.d/default.conf
# 添加你的配置文件到镜像中
ADD default.conf /etc/nginx/conf.d/
# 将dist文件夹下的内容复制到镜像的/usr/share/nginx/html/目录下
COPY dist/ /usr/share/nginx/html/

这样文件都准备好了,可以开始镜像的创建了。

   2.3开始构建镜像并运行容器

注意前端构建也要再前端目录下进行构建,并需要“ ”,表示根据当前路径下的Dockerfile文件进行镜像的构建。

然后还是创建容器,注意这里的80端口映射映射的是nginx的端口,要和那个配置文件了写的一致

到此为止我也就构建完毕了,让我们来看看效果:

三、效果演示

访问服务器地址+9090端口就可以之间访问前端默认首页了。

 我们试试和后端的交互,可以看出登录成功。

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

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

相关文章

python数据结构与算法-15_堆与堆排序

堆(heap) 前面我们讲了两种使用分治和递归解决排序问题的归并排序和快速排序,中间又穿插了一把树和二叉树, 本章我们开始介绍另一种有用的数据结构堆(heap), 以及借助堆来实现的堆排序,相比前两种排序算法要稍难实现一些。 最后我…

Unity UI设计 软件构造实验报告

实验1: 仿真系统的UI主界面设计 1.实验目的 (1)熟悉Unity中UI界面的设计与编写; (2)熟悉UI界面中场景转换,UI与场景内容相互关联的方式。 (3)熟悉Unity中MySQL数据库的操作 2.实验内容 新建…

分布式锁之基于redis实现分布式锁(二)

2. 基于redis实现分布式锁 2.1. 基本实现 借助于redis中的命令setnx(key, value),key不存在就新增,存在就什么都不做。同时有多个客户端发送setnx命令,只有一个客户端可以成功,返回1(true);其他…

在线视频课程教育系统源码/网课网校/知识付费/在线教育系统/在线课程培训系统源码

源码简介: 在线视频课程教育系统源码,作为网课/网校/知识付费/在线教育系统,它有文章付费阅读在线点播自动发货付费阅读VIP会员系统等功能。它是实用的在线课程培训系统源码。 发货100-在线视频课程教育系统,它是一款功能实用的…

PC8250(CC-CV控制)5V/8A同步降压恒流恒压软启动带EN功能只需极少外围元件

概述 PC8250是一个同步降压转换器输出电流至8A。它的设计允许操作电源电压范围从9V到42V。外部关闭功能可以通过逻辑电平来控制COMP/EN引脚下降,然后进入待机模式。外部补偿使反馈控制具有良好的线路和负载调节,外部设计灵活。PC8250在CC(恒定…

【C语言】深入解开指针(四)

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…

基于Pytorch框架多人多摄像头摔倒跌倒坠落检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在计算机视觉领域的应用已经取得了显著的进展,特别是在多人多摄像头场景下的摔倒跌倒检测。通过…

OpenSearch开发环境安装Docker和Docker-Compose两种方式

文章目录 简介常用请求创建映射写入数据查询数据其他 安装Docker方式安装OpenSearch安装OpenSearchDashboard Docker-Compose方式Docker-Compose安装1.设置主机环境2.下载docker-compose.yml文件3.启动docker-compose4.验证 问题问题1:IPv4 forwarding is disabled.…

给数据库查询结果添加一个额外的自增编号

1、在mysql数据库可以执行的sql SELECT( i : i 1 ) num,M.* FROMuser M,( SELECT i : 0 ) AS ID GROUP BYM.ID ORDER BYM.create_time SELECT (i :i 1) 是为了生成自增的序列号字段 SELECT i : 0 是为了将i进行初始化每次查询的序列号都会从1开始进行排序生成序列号 在…

docker部署paddleocr

内容仅供参考学习 欢迎朋友们V一起交流: zcxl7_7 环境 1. CentOS7  2. docker  3. PaddleOCR2.5.2 1.准备 1. 首先准备好需要打包的项目 2. 在该项目中创建Dockerfile文件 touch Dockerfile2. 编写Dockerfile # 从Python 3.8的官方镜像中创建(pyt…

快速排序演示和代码介绍

快速排序的核心是(以升序为例):在待排序的数据中指定一个数做为基准数,把所有小于基准数的数据放到基准数的左边,所有大于基准数的数据放在右边,这样的话基准数的位置就确定了,然后在两边的数据中重复上述操作

5G智慧工地整体解决方案:文件全文115页,附下载

关键词:5G智慧工地,智慧工地建设方案,智慧工地管理平台系统,智慧工地建设调研报告,智慧工地云平台建设 一、5G智慧工地建设背景 5G智慧工地是利用5G技术、物联网、大数据、云计算、AI等信息技术,围绕“人…

SANSAN新鲜事|理清!如何降低数字工厂建设成本

根据调研结果,在中国,只有10%的企业已经完全实施数字化工厂解决方案或目前处于最后阶段。工厂数字化的进展比企业的预期要慢得多,原因包括复杂的系统环境和多样化的机器版图,以及在整个生产网络中推广单个解决方案的相关挑战。实施…

深度学习之基于Tensorflow卷积神经网络鸟类目标识别检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Tensorflow的卷积神经网络(Convolutional Neural Networks,CNN)在鸟类目标识…

景区智慧旅游智能化系统方案:PPT全文58页,附下载

关键词:智慧景区解决方案,智慧文旅解决方案,智慧旅游解决方案,智慧文旅综合运营平台 一、景区智慧旅游智能化系统建设背景 近年来,随着信息技术的快速发展和普及,以及旅游市场的不断扩大和升级&#xff0…

Me-and-My-Girlfriend-1

Me-and-My-Girlfriend-1 一、主机发现和端口扫描 主机发现,靶机地址192.168.80.147 arp-scan -l端口扫描,开放了22、80端口 nmap -A -p- -sV 192.168.80.147二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.147/" -e * …

用好说 AI 玩转奥特曼表情包,居然还能和他们聊个天

你喜欢奥特曼吗?你相信光吗? 如果你已经追完了特摄剧、刷完了大电影、用滥了那几个表情包,那不如来试试用 AI 给自己整点活儿新 “物料”。 不管是和奥特曼 “面对面” 聊天还是 “无中生有” 表情包,AI 都能做! (※…

重磅!2023两院外籍院士增选名单公布

根据《中国科学院院士章程》《中国科学院外籍院士选举办法》等规定,2023年中国科学院选举产生了30名中国科学院外籍院士。 现予公布。 中国科学院 2023年11月23日 中国工程院2023年外籍院士增选共选举产生16位中国工程院外籍院士。 现予公布。 中国工程院 2023年…

Pyqt5实现多线程程序

主从架构 Pyqt常常使用**主从架构(Master-Workers 架构)**来避免界面卡死的情况。 Master-Workers 架构就像它的名字,一个master统领着几个workers一起干活。其中某个worker倒下了不会导致整体任务失败。matser不用干活,因此可以…

UltraCompare 23 for Mac文件对比工具

UltraCompare是一款功能强大的文件比较和合并工具, 以下是它的特色介绍: 多种文件格式支持:UltraCompare支持比较和合并多种文件格式,包括文本文件、二进制文件、office文档、PDF文件等。 文件差异高亮显示:UltraComp…