| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Docker中使用Dockerfile的方式部署SpringBoot+Vue前后端分离的项目(若依前后端分离框架为例) -> 正文阅读 |
|
[系统运维]Docker中使用Dockerfile的方式部署SpringBoot+Vue前后端分离的项目(若依前后端分离框架为例) |
场景若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面搭建起来SpringBoot+Vue前后端分离的项目后,如果要进行项目部署的话。 可以通过nginx部署前端代码并进行接口机请求映射,后台jar包单独启动,redis和mysql都要安装。具体流程可以参照下面 若依前后端分离版本,Windows下使用Nginx代理的方式进行部署(全流程,图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108120070 如果要求用Docker镜像的方式怎样部署。 注: 博客: 实现这里使用Dockerfile定制镜像的方式。 将redis和mysql使用单独的镜像,并在运行容器时指定密码。 将后台jar包基于jdk定制化镜像。 将前端dist包基于nginx定制化镜项。 1、docker中部署redis CenOS7中使用Docker安装配置Redis(数据持久化与数据卷映射): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119823807 这里设置的其密码是123456,则在SpringBoot中连接redis的密码也是对应的123456 然后将系统对应的sql文件导入进入数据库即可,可以使用Navicat等工具连接后导入sql。 2、docker中部署mysql Docker中部署mysql数据库: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99213563 需要注意的是这里在运行容器时要额外设置其忽略大小写,不然在jar包中连接数据库 后会提示找不到表,而此表是已经存在的。 解决方式: 启动时加上命令
完整命令
3、Dockfile定制带jar包的镜像 此jar包打包时设置的redis和mysql的地址都是localhost 然后密码都是对应的运行容器时的密码。 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 基于上面实现定制化带jar包的镜像。 注意两点: 一是Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/120204615 要注意若依中登录页面时访问验证码时会提示这个错误。 一个是如果直接按照上面博客中启动的话,jar包里面请求连接redis和mysql的地址都是localhost时会找不到该地址。 需要在运行时给其指定网络 Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统, Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。 host模式类似于Vmware的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。一个Docker容器一般会分配一个独立的Network Namespace。 但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 运行时指定网络为host
这里的7777就是SpringBoot指定的后台端口 4、Dockerfile定制基于nginx的前端镜像 CentOS中使用Docker+nginx部署Vue打包的dist项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119839732 基于上面将前端项目打成dist包,nginx的核心修改配置如下
其中100是前端项目指定的端口。 需要注意的是在启动nginx容器时也要指定网络
5、查看效果 将所有容器启动后将服务器上100端口开放
然后直接访问ip:100查看部署效果 如果有问题可以查看jar包的镜像的运行日志,这里是正常启动的 为了单独验证后台jar包是否启动成功,可以开放后台7777端口并单独访问验证码接口进行验证 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:49:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |