资讯中心

vue-vben-admin Docker 容器化部署:3 个节点一次跑通生产上线

📅 2026/9/27 23:45:15
vue-vben-admin Docker 容器化部署:3 个节点一次跑通生产上线
vue-vben-admin Docker 容器化部署3 个节点一次跑通生产上线【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin你刚拿到一台干净的服务器今天就要把这套 Vue3 管理后台交付上去。vue-vben-admin 是基于 Vue3、Vite、TypeScript 与 Shadcn UI 的 Monorepo 中后台模板官方在仓库里内置了多阶段 Dockerfile 与 Nginx 配置按下面这条流水线走从源码到可访问的容器服务大约需要 30 分钟不含构建等待。最终交付物是一个监听 8080 端口、带 SPA 路由回退与 CORS 头的生产容器。部署链路总览先花 30 秒建立全局地图整条链路只有 5 跳环节产物说明源码pnpm Monorepo含 5 套 UI 应用与 playground构建产物playground/distbuilder 阶段内完成静态文件容器镜像vben-admin:prodnode:22-slim 构建 nginx:stable-alpine 运行运行容器端口 8080docker run -p 8080:8080反向代理NginxSPA 回退 CORS之后可挂网关/HTTPS镜像的第二阶段只包含静态文件与 Nginx 配置不含 Node 运行时体积小、攻击面小。实战跑通一条完整部署流水线节点 A —— 环境就位与代码获取构建机需要 Node 22.18或 24.12与 pnpm 11这是根目录 package.json 中engines字段声明的硬性要求。先确认版本再拉代码node -v pnpm -v git clone https://gitcode.com/GitHub_Trending/vu/vue-vben-admin cd vue-vben-admin看到两个版本号都满足要求即可继续。Docker 需要 20.10Compose 场景再补 v2。环境就绪后进入构建环节镜像打包是整条流水线耗时最长的一步。节点 B —— 多阶段构建与镜像打包仓库自带的 scripts/deploy/Dockerfile 分两个阶段builder 用node:22-slim通过pnpm run build --filter!./docs构建全部应用并分配 8GB 堆内存NODE_OPTIONS--max-old-space-size8192运行阶段切到nginx:stable-alpine只复制playground/dist与 Nginx 配置。配合根目录 .dockerignore 排除node_modules、dist、.turbo后构建上下文保持轻量。打包命令只有一条docker build -f scripts/deploy/Dockerfile -t vben-admin:prod .Monorepo 依赖安装与 Vite 构建合计约需 5~10 分钟取决于磁盘与网络。看到docker images | grep vben-admin出现vben-admin:prod一行即成功。镜像打好后下一步是把它跑起来并配置代理。节点 C —— 容器拉起与反向代理Nginx 的默认配置在 scripts/deploy/nginx.conf监听 8080try_files $uri $uri/ /index.html保证前端路由刷新不 404并已内置 CORS 响应头。直接拉起容器docker run -d -p 8080:8080 --name vben-admin vben-admin:prod验证分两层curl -I http://localhost:8080返回 200浏览器打开后看到登录页即说明整条链路已通。跑通之后建议再做一轮性能与可维护性加固避免上线后被动返工。节点 D —— 性能与可维护性加固 三个关键点静态资源缓存带哈希的js/css/图片文件可设 30 天缓存。在镜像内 Nginx 配置的 location 中追加即可示例location ~* \.(js|css|png|jpg|svg|woff2)$ { expires 30d; add_header Cache-Control public, max-age2592000; }gzip 压缩仓库内的 nginx.conf 已预留 gzip 配置块默认注释状态启用后可再削减 30% 左右的传输体积适合 JS/CSS 为主的页面。接口地址是构建期注入的VITE_GLOB_API_URL在各应用的.env.production如 apps/web-antd/.env.production中声明打包时写死进产物。也就是说更换接口域名必须重新构建镜像不能靠运行期环境变量覆盖。排障速查症状定位命令修复动作8080 端口被占用容器起不来docker logs vben-admin、netstat -tuln \| grep 8080改映射端口为-p 8081:8080或释放占用进程刷新路由后 404浏览器 Network 面板看状态码确认 Nginx 保留try_files ... /index.html回退规则前端请求接口跨域报错对比页面域名与VITE_GLOB_API_URL值同域部署或在网关层补齐 CORS 头并指向真实后端构建阶段内存溢出OOMKilleddocker build输出的 exit code 137为构建加内存上限如docker build --memory 12g与 8GB 堆匹配页面正常但接口 404/空白数据docker exec vben-admin cat /usr/share/nginx/html/index.html接口地址构建期固化修改.env.production后重新 build进阶路线只交付单套 UI用pnpm build:antd之类的 filter 命令只构建 apps/web-antd 目标应用镜像更小、启动更快。接口与代理细节反向代理、跨域与 Mock 的完整机制见 docs/src/guide/essentials/server.md。上线前回归仓库内置 Playwright 用例可用 playground/tests/e2e/ 下的登录与布局用例做冒烟验证。多环境隔离每套应用都有独立的.env.production/.env.analyze文件按环境拆分构建参数即可。目录与工程规范熟悉 docs/src/guide/project/dir.md 后你可以自主裁剪不需要的子应用。走到这里你已经能独立完成源码到生产容器的完整闭环会看多阶段 Dockerfile、会配 SPA 回退与缓存策略也清楚接口地址在构建期固化的边界。剩下的只是把域名、HTTPS 与日志接进来把这条流水线接到你的发布流程上。【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

看完文章,想为自己的企业也做一次专业网站诊断?

尧图顾问免费为您评估现有网站,并给出建站/改版建议与报价方案。

免费获取方案