FEATURED · 精选文章

vue-vben-admin 容器化部署最短路径:2 条命令上线 + 3 个生产避坑配置

发布时间 / 2026/9/12 18:11:28
来源 / 创域科博编辑部
栏目 / 资讯中心
vue-vben-admin 容器化部署最短路径:2 条命令上线 + 3 个生产避坑配置 vue-vben-admin 容器化部署最短路径2 条命令上线 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一次线上故障复盘后你决定把后台系统搬进容器装好 Docker、写好镜像页面一打开全是 404接口跨域报错排查半天才发现路由回退和静态资源缓存根本没配。vue-vben-admin 自带的官方部署工具链把这段路提前铺好了——scripts/deploy/ 目录里的多阶段构建 Dockerfile 和 Nginx 配置拿来即用2 条命令就能把后台跑进容器。这篇 vue-vben-admin 部署指南带你看清每个文件管什么、怎么最短路径启动、生产环境哪三处配置绕不开、卡住时如何自诊目标是让你 10 分钟内拿到一个可访问的登录页并直接走到生产就绪。一、先看全貌一次部署由哪几个文件组成先认地图再上路。官方部署工具链核心就三个文件各自管一段文件管什么为什么需要它scripts/deploy/Dockerfile多阶段构建第一段用 node:22-slim 装依赖、执行pnpm run build --filter!./docs产出 dist第二段把 dist 拷进 nginx:stable-alpine 只跑服务构建链与运行链分离线上镜像里没有 Node 构建链体积小、攻击面小scripts/deploy/nginx.conf监听 8080SPA 路由回退try_files $uri $uri/ /index.html默认带上 CORS 响应头保证前端刷新不白屏并减少同源接口跨域问题.dockerignore排除 node_modules、.git、dist、*.md 等缩小 build context镜像构建更快更省带宽官方 Dockerfile 的骨架长这样一眼看懂两段分工FROM node:22-slim AS builder RUN pnpm install --frozen-lockfile RUN pnpm run build --filter!./docs FROM nginx:stable-alpine COPY --frombuilder /app/playground/dist /usr/share/nginx/html二、最短路径两条命令先跑起来结论先行拉代码、构建、启动全程只需要三条命令第一条是准备。仓库默认走 pnpm版本以 package.json 的packageManager字段为准构建镜像时由镜像自己装本机不用额外准备 Node 环境。git clone https://gitcode.com/GitHub_Trending/vu/vue-vben-admin cd vue-vben-admin pnpm install pnpm run build --filtervben/playgrounddocker build -f scripts/deploy/Dockerfile -t vben-admin . docker run -d -p 8080:8080 --name vben-admin vben-admin容器启动后浏览器打开http://localhost:8080看到登录页就算跑通了命令行里curl -I http://localhost:8080返回 200 也行。三、生产就绪三个绕不开的配置多环境 .env一份镜像多套配置——解决测试和线上共一个代码库、却需要不同标题、不同接口地址的问题。每个应用目录下都有.env、.env.development、.env.production三套文件VITE_APP_开头的变量在构建时注入意味着换配置必须重新构建镜像而不是重启容器# .env.production VITE_APP_TITLE生产后台 VITE_APP_NAMESPACEvben-prod VITE_APP_STORE_SECURE_KEY换成你自己的密钥反向代理接口地址这类变量以仓库各应用.env.production的实际字段为准发布前逐个核对。Nginx 缓存与反向代理白屏和跨域一次解决——解决前端刷新 404、静态资源重复下载、接口跨域三类高频问题。官方 nginx.conf 已含路由回退和 CORS 头你只需按生产域名调整并给静态资源加缓存头location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; } location ~* \.(js|css|png|svg)$ { expires 30d; add_header Cache-Control public, max-age2592000; }接口量大时把/api/前缀在同域名下反代到后端跨域问题直接消失。docker-compose 多实例与日志持久化故障自愈 日志不丢——解决容器重启即日志丢失、单机多副本扩容的问题。用 docker-compose 编排后容器崩溃自动拉起Nginx 日志落到宿主机services: vben-admin: image: vben-admin:prod ports: - 8080:8080 volumes: - ./logs:/var/log/nginx restart: always四、卡住了怎么办常见故障自诊现象原因处理刷新页面静态资源 404root 指向的目录没有产物或 SPA 路由没有回退确认 nginx.conf 的root指向 dist且带try_files回退接口跨域报错前后端不同源CORS 头缺失优先把接口反代到同域名否则在 Nginx 补 CORS 响应头端口被占用起不来8080 已有服务监听netstat -tuln \| grep 8080找出占用方改映射端口构建阶段 OOM内存不足默认堆不够构建机加内存或按 package.json 中 NODE_OPTIONS 调大堆上限容器反复退出依赖安装失败、内存被杀docker logs vben-admin看最后报错逐条排查五、交给机器自动化与加固CI/CD 自动构建给代码托管平台挂一条流水线推送到主干就自动docker build并推送镜像到仓库关键命令和下面 CI 片段保持一致on: push: branches: [main] jobs: build: steps: - uses: actions/checkoutv4 - run: docker build -f scripts/deploy/Dockerfile -t vben-admin:${{ github.sha }} .容器健康检查给 Dockerfile 追加 HEALTHCHECKNginx 挂掉由 Docker 自动重启HEALTHCHECK CMD wget -qO- http://127.0.0.1:8080/ || exit 1HTTPS证书交给前置的反向代理网关如 Caddy、云厂商 LB终结容器内保持 HTTP 即可注意把 CORS 头里的通配域名换成生产域名。监控告警compose 里的日志卷是采集入口把 Nginx 访问日志和错误日志接到现有日志平台再对 8080 端口做拨测异常直接告警到人。结尾上线前自检清单API 地址、VITE_APP_STORE_SECURE_KEY已替换并按新.env重新构建了镜像Nginx 已配接口反向代理静态资源带 30 天缓存头docker-compose 配了restart: always日志卷挂载到宿主机Dockerfile 含 HEALTHCHECK异常时容器可自愈HTTPS 证书就绪端口拨测与日志告警已接入延伸方向按目标应用用--filter过滤构建只打你要上线的那一个给容器设置 CPU/内存限额防单点拖垮宿主机把镜像接入多地域分发缩短发布半径。【免费下载链接】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),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻