SpringBoot+Vue前后端分离项目在Linux系统中基于Docker打包发布

文章目录

  • SpringBoot+Vue前后端分离项目在Linux系统中基于Docker打包发布
  • 一、Java项目基于Docker打包发布
    • 1.打包应用,将打好的jar包放到我们的linux系统中
    • 2.新建dockerfile
    • 3.打包镜像
    • 4.测试运行
    • 5.上传镜像到阿里云免费私仓
  • 二、Vue项目打包到docker镜像
    • 1.编译打包前端项目将打包生成的dist文件夹复制到咱们的wms-web文件夹内
    • 2 前端项目 nginx的配置文件default.conf 和 dockerfile
    • 3.构建镜像(同后端)
    • 4.运行测试

SpringBoot+Vue前后端分离项目在Linux系统中基于Docker打包发布

一、Java项目基于Docker打包发布

1.打包应用,将打好的jar包放到我们的linux系统中

//跳过测试类,更快打包。也可以直接双击侧边栏maven里面的package打包
mvn clean package -DskipTests

在这里插入图片描述
将打好的jar包放到咱们opt目录下的自定义文件夹内
在这里插入图片描述

2.新建dockerfile

FROM  openjdk:8
#设置工作目录
WORKDIR  /opt
#COPY  wms-app-1.0-SNAPSHOT.jar /workspace/app.jar
ADD  wms-app-1.0-SNAPSHOT.jar  app.jar
#配置容器暴漏的端口
EXPOSE 8080
#查看是否已经copy进去
RUN  ls 
#java App
ENTRYPOINT  ["java","-jar","app.jar"]

在这里插入图片描述

3.打包镜像

docker build -t wmsapp:v1 .
//最后有一个点不要忘了

在这里插入图片描述
打包成功后
在这里插入图片描述

4.测试运行

–rm 代表退出之后,容器移动删除

docker run -it --rm wmsapp:v1
//指定在Linux宿主机3333端口运行,这样可以在电脑主机浏览器进行访问
docker run -it --rm -p 3333:8080 wmsapp:v1

可以看到成功启动了服务
在这里插入图片描述

5.上传镜像到阿里云免费私仓

阿里云免费私仓
创建好自己的镜像仓库后会显示操作指南
在这里插入图片描述

身份登录

$ docker login --username=fpl1116 registry.cn-beijing.aliyuncs.com

在这里插入图片描述
将镜像推送到Registry

$ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/fpl-erp/wms-project:[镜像版本号]
//登录之后直接使用下面这个命令就可以实现推送
$ docker push registry.cn-beijing.aliyuncs.com/fpl-erp/wms-project:[镜像版本号]

在这里插入图片描述
可以在镜像仓库中进行查看
在这里插入图片描述

拉取镜像

$ docker pull registry.cn-beijing.aliyuncs.com/fpl-erp/wms-project:[镜像版本号]

二、Vue项目打包到docker镜像

1.编译打包前端项目将打包生成的dist文件夹复制到咱们的wms-web文件夹内

npm run build

在这里插入图片描述

2 前端项目 nginx的配置文件default.conf 和 dockerfile

default.conf

upstream wms-app {
    server 192.168.11.87:3333 weight=1;
    server 192.168.11.87:4444 weight=1;
}
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html; #解决单页面找不到路径问题 404
    }
    location /api/ {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'POST,GET,OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'Authorization'; #跨域设置
            proxy_pass http://wms-app ;  #可以配置多个下游服务,具有负载功能
            #proxy_pass http://192.168.14.3:3666; #仅配置一个下游服务,不具有负载均衡能力

    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

1.root:设置静态根目录为 /usr/share/nginx/html
2. index:设置目录的默认文件为 index.html 、index.htm、index.php
3. try_files:设置文件查找规则为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 u r i / 目录中查找,最后查找 / i n d e x . h t m l 。

dockerfile

FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
#COPY  default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/

在这里插入图片描述

3.构建镜像(同后端)

docker build -t wmsweb:v1 .

在这里插入图片描述

4.运行测试

docker  run -it -p 8086:80  wmsweb:v1

在这里插入图片描述

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

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

相关文章

龙智亮相2024国际集成电路展览会暨研讨会(IIC Shanghai),分享芯片研发及管理解决方案与技术实践

2024年3月28-29日(周四-周五),上海张江科学会堂,2024国际集成电路展览会暨研讨会(IIC Shanghai 2024)即将盛大开幕。龙智携芯片研发及管理解决方案、最佳实践与案例,以及惊喜大奖在#1A14展位等着…

Docker容器化技术(docker-compose示例:部署discuz论坛和wordpress博客,使用adminer管理数据库)

安装docker-compose [rootservice ~]# systemctl stop firewalld [rootservice ~]# setenforce 0 [rootservice ~]# systemctl start docker[rootservice ~]# wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64创建目录 [rootse…

模方软件匀色功能是灰色的不能点是什么原因?

问题如图 模方软件试用版没有匀色权限,正式版才可以用 。 下方链接有1个月的授权,有需要可以点开,软件正式版的可以使用匀色这个功能。https://item.jd.com/10037263088236.html

项目技术问题记录-IDEA设置类和方法注释模板

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 一、设置类注释模板 1.选择File–>Settings–>Editor–>File and Code Templates–>Includes–>File Header. 注释模板&am…

对七层代理、四层代理、正向代理、反向代理的认识

一、理解nginx服务代理 Nginx代理有正向和反向代理两种类型,可以基于osi七层模型中的第四层(传输层)和第七层(应用层)进行代理 注: nginx 一般支持的是7层代理,支持四层代理一般使用 lvs 或者ha…

Linux——进程信号(二)

目录 1、阻塞信号 1.1、信号其他相关常见概念 1.2、在内核中的表示 1.3、sigset_t 1.4、信号集操作函数 2、捕捉信号 2.1、内核如何捕捉信号 5.2、sigaction 1、阻塞信号 1.1、信号其他相关常见概念 实际执行信号的处理动作被称为信号递达(Delivery&#x…

每日必学Linux命令:chmod命令

** 每日一个Linux命令之chmod命令 ** chmod命令简介利用chmod命令变更文件权限 1. chmod命令简介 查询chmod命令的man page,如下所示: 根据chmod命令的man page可知,chmod命令用于修改文件的mode,那么文件的mode是什么呢&am…

软件游戏缺失unityplayer.dll怎么办,教程5种解决方法

unityplayer.dll是Unity游戏引擎的重要动态链接库文件,它的缺失将直接导致基于该引擎开发的游戏无法正常启动或运行。玩家可能会在尝试打开游戏会提示诸如“找不到unityplayer.dll”或“dll文件丢失”的错误提示,从而无法体验游戏内容。这个问题通常是由…

jscpd检测代码的重复率

官方文档:jscpd jscpd 是一个开源的代码重复检测工具,它用于查找代码中的重复部分并生成相应的报告 1、比较两个目录之间的差异 yarn jscpd --skipLocal sre/test1/** sre/test2 --reporters html生成报告文档在 ./report/html 下面,可以打开…

Java毕业设计-基于springboot开发的书籍学习平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、平台功能模块2、后台功能模块2.1管理员功能模块2.2用户功能模块2.3作者功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基…

政务服务中心怎么用AI交互数字人打造政务服务新名片?

西海岸新区政务服务中心推出AI交互数字人“灵灵”,以一体机终端形式提供便捷、智能的服务体验,并担任政务数字人主播宣传政策信息。 *图片源于网络 并且AI交互数字人灵灵还承担了政务数字人主播的工作,以数字人短视频的形式,向市…

运维人少,如何批量管理上百个微服务、上千条流水线?

作者:周静 随着微服务和云原生技术的发展,一个业务系统往往由多个微服务应用组成,多个业务方向涉及几十上百应用。每个应用研发过程又划分为测试、预发、生产多条流水线,也即成百上千条流水线。而一个企业下通常只有 1&#xff5…

C++的内存管理

目录 1. C/C内存分布 2. C语言中动态内存管理方式 3. C内存管理方式 3.1 new/delete操作内置类型 4. operator new与operator delete函数 4.1 连续开辟空间(尽力了解) 5. new和delete的实现原理 5.1 内置类型 5.2 自定义类型 6. 深入理解 6.1malloc/free和new/delete的区…

Git的原理与使用(二)

目录 修改文件 版本回退 小测试 第一次修改提交 第二次修改提交 第三次修改 查看历史提交记录 版本回退快的原因 撤销修改 位于工作区未add 已add未commit 已add且commit 删除文件 分支管理 理解分支 创建分支 切换分支 修改文件 版本库是指maser 查看当前…

Docusaurus和HelpLook:谁更适合做知识库管理

在当今信息化时代,企业建立和维护一个好用、高效、能持续更新的知识库,对内部沟通、团队合作和客户服务都很重要。Docusaurus和HelpLook都是很好的知识库管理工具,但它们的功能和优势各有不同。跟着我一起深入了解两个工具之间的优劣&#xf…

云轴科技ZStack受邀参加鲲鹏原生开发合作启动仪式

3月14日-15日,华为中国合作伙伴大会2024在深圳隆重开幕。作为鲲鹏生态重要合作伙伴,云轴科技ZStack创始人&CEO张鑫受上海鲲鹏生态创新中心之邀参加此次大会,并参加鲲鹏原生开发合作启动仪式。 鲲鹏原生应用开发旨在为伙伴提供鲲鹏硬件底…

Yolo系列各代网络结构分析(一)

Yolo系列 Yolo系列算是目标检测领域的常青树了,从v1到最近的v9,一直都在不断迭代,不断改进,但是细看其各代网络的发展,其实还是有很多一脉相承之处以及算法设计偏好的,总结主要为以下几个方面:…

3、类的生命周期

类的生命周期描述了一个类加载、使用、卸载的整个过程。整体可以分为: 加载连接,其中又分为验证、准备、解析三个子阶段初始化使用卸载 2.3.1 加载阶段 1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码…

Halcon 3D算子总结整理

halcon 3D包含以下几个模块: 3D Matching(3D匹配)3D Object Model(3D模型)3D Reconstruction(3D重构)3D Transformations(3D转换) 1. 3D Matching 1.1 3D Box3D盒查找器…

【Memcached】springBoot 集成 memcached 两万字长文带你认识memcached

目录 一、 memcached 介绍1.1 简介1.2 特性1.3 优点1.4 缺点1.5 实现原理1.6 适用场景1.7 不适用场景1.8 与 Redis 比较相同点1.9 与 Redis 比较不同点 二、对 java 的支持2.1 Memcached-java-client 客户端2.2 Spymemcached 客户端2.3 XMemcached 客户端 三、下载安装3.1 wind…