前端独立 Nginx 容器 Docker 部署教程(手动构建前端包)
前言本次部署采用前端项目独立容器部署方案基于 Nginx 容器托管前端静态资源并通过 Nginx 反向代理实现后端接口转发单独暴露外网访问端口。好处该部署模式实现了前端项目完全解耦、独立部署与服务器上其他项目无端口、服务、资源冲突。当前前端容器出现故障、重启、更新时仅影响当前前端项目访问不会干扰后端服务及其他业务项目稳定性和可维护性更强。1、部署前置准备前端的dist包通过npm run build出来的前端包docker-compose.yml 容器配置文件Dockerfile 镜像描述文件nginx.conf nginx配置文件dist包docker-compose.ymlservices:ruoyi-web-jstfc:image:ruoyi-web-jstfc:1.0.0container_name:ruoyi-web-jstfc restart:unless-stopped # 独立对外宿主机18081→ 容器80# 与旧项目 nginx 容器宿主机的80不冲突 ports:-${WEB_PORT:-18081}:80networks:-ruoyi-jstfc-net networks:ruoyi-jstfc-net:name:ruoyi-jstfc-net external:trueDockerfile 镜像描述文件# 镜像只负责托管静态文件反向代理后端接口FROMnginx:1.27-alpine # 删除默认配置与静态文件RUNrm-rf/usr/share/nginx/html/* /etc/nginx/conf.d/default.conf # 拷贝前端构建产物 COPY dist/ /usr/share/nginx/html/ # 拷贝 nginx 配置 COPY nginx.conf /etc/nginx/conf.d/default.conf # 对外暴露的端口 EXPOSE 80 CMD [nginx, -g, daemon off;]nginx.confserver{listen80;server_name _;charset utf-8;# 前端构建产物Vitebuild 输出 root/usr/share/nginx/html;index index.html;#后端接口反向代理容器内80→ 同网络 ruoyi-admin-jstfc:8080# 主接口前缀与 application-prod.yml 中 servlet context-path 对应 location/prod-api/{proxy_pass http://ruoyi-admin-jstfc:8080/;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_connect_timeout60s;proxy_read_timeout600s;proxy_send_timeout600s;client_max_body_size260m;}# 标准/api/路径 location/api/{proxy_pass http://ruoyi-admin-jstfc:8080/api/;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_connect_timeout60s;proxy_read_timeout600s;proxy_send_timeout600s;client_max_body_size260m;}# 上传的静态资源房产图、头像等 location/profile/{proxy_pass http://ruoyi-admin-jstfc:8080/profile/;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;}#前端SPA#SPA路由 fallback部署在根路径/ location/{try_files $uri $uri//index.html;}}2、构建镜像在项目目录下运行:docker build -t ruoyi-web-jstfc:1.0.0 .3、创建共享网络如果还没建docker network create ruoyi-jstFc-net4、启动docker compose up -d5、查看容器运行状态与日志筛选查看当前前端容器运行状态docker ps | findstr jstFc实时查看容器运行日志排查启动异常、接口代理报错问题docker logs -f ruoyi-web-jstFc

相关新闻

CrewAI:专业研究助手的核心功能与应用实践

CrewAI:专业研究助手的核心功能与应用实践

1. CrewAI:个人研究助手的革命性工具最近在技术圈里,CrewAI这个名词越来越频繁地被提及。作为一个长期关注AI工具应用的开发者,我必须说CrewAI确实带来了不少惊喜。它不像ChatGPT那样只是一个通用对话模型,而是专门为研究场景设计…

2026/7/17 5:15:25阅读更多 →
C++开发入门:从环境配置到核心语法与项目实践

C++开发入门:从环境配置到核心语法与项目实践

1. 项目概述:为什么C依然是硬核开发的基石最近在社区里看到不少关于“C是否过时”的讨论,也常被刚入行的朋友问到:“现在学C还有用吗?” 作为一个从C98时代一路摸爬滚打过来的老码农,我的回答始终是:它不仅…

2026/7/17 5:15:25阅读更多 →
STM32F407与DS18B20实现智能家居温度监测系统

STM32F407与DS18B20实现智能家居温度监测系统

1. 项目背景与硬件选型在智能家居系统中,温度监测是最基础也最关键的环节之一。我最近使用正点原子STM32探索者V3开发板搭建了一个家庭智慧网关的原型系统,其中温度传感器模块的实现过程值得分享。这款开发板作为正点原子探索者系列的第三代产品&#xf…

2026/7/17 5:15:25阅读更多 →
TVA:具身智能技术生态的强力引擎(3)

TVA:具身智能技术生态的强力引擎(3)

前沿技术介绍:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,属于“物理AI” 领域的一种全新技术形态,完成了从“虚拟世界”到“…

2026/7/17 6:10:30阅读更多 →
Spring Cloud Config 生产级密钥安全管理:从加密原理到七项核心实践

Spring Cloud Config 生产级密钥安全管理:从加密原理到七项核心实践

1. 项目概述:为什么生产环境的密钥安全是生死线 在微服务架构里,配置管理是个老生常谈的话题,Spring Cloud Config 作为其中的佼佼者,让配置的集中管理和动态刷新变得优雅。但不知道你有没有过这样的“后背发凉”时刻:…

2026/7/17 6:10:30阅读更多 →
FNF模组制作指南:角色替换与曲目扩展实战解析

FNF模组制作指南:角色替换与曲目扩展实战解析

这次来看一个 FNF(Friday Night Funkin)游戏相关的玩家自制内容项目,具体是 QT 角色模组但替换为"脱缰凯"形象,同时整合了鹰眼角色的剩余三首曲目全流程演示。这类内容属于 FNF 社区的模组创作和游戏实况分享&#xff0…

2026/7/17 6:10:30阅读更多 →
C#手动实现MD5算法:从原理到完整源码与调试指南

C#手动实现MD5算法:从原理到完整源码与调试指南

1. 项目概述:为什么我们还在用MD5? 在C#开发里,处理密码、校验文件完整性或者生成唯一标识符时,MD5算法是一个绕不开的话题。尽管在密码学领域,MD5因其碰撞漏洞早已不被推荐用于高安全级别的密码存储,但在非…

2026/7/17 6:10:30阅读更多 →
命令行摸鱼工具:提升开发效率的智能终端助手

命令行摸鱼工具:提升开发效率的智能终端助手

你是不是也经历过这样的场景:盯着 IDE 发呆,编译进度条缓慢爬升,或者等待一个漫长的测试套件运行完成?在这些"等待时间"里,很多程序员会选择刷手机、逛技术论坛,但有一群"古典程序员"找…

2026/7/17 6:10:30阅读更多 →
Dify+蓝耘MaaS构建企业知识库实战指南

Dify+蓝耘MaaS构建企业知识库实战指南

1. 为什么选择Dify蓝耘MaaS构建企业知识库企业知识管理正面临三大痛点:分散的文档难以检索、专业问题响应效率低、新员工培训成本高。去年我们团队处理了超过1200次内部知识查询,平均响应时间长达47分钟。而采用Dify平台对接蓝耘MaaS(Model-a…

2026/7/17 6:05:30阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →