# 运维操作系统部署 **Repository Path**: openaidevops/opsysdeploy ## Basic Information - **Project Name**: 运维操作系统部署 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Devtools 一键部署说明(Docker Compose) 本仓库将: - 前端:`yudao-ui-admin-vue3` - 后端:`ruoyi-vue-pro`(`yudao-server`) 组合为一个可一键启动的部署方案,并将前端挂载到子路径 `/devtools/`,通过同域 Nginx 反向代理访问后端接口。 ## 优化后的提示词(中文) 在 `g:\工作\项目\devtool\resourse` 仓库内,提供一套 Docker Compose 一键部署方案:前端以 `/devtools/` 子路径对外发布(支持 SPA 刷新),同域由前端 Nginx 反向代理后端(至少包含 `/admin-api/`,并确保 `/infra/ws` WebSocket 可用)。Compose 编排 MySQL、Redis、后端、前端;后端仅在 Compose 内网暴露;前端映射到宿主机端口(默认 `8080:80`)。 ## Optimized Prompt (English) Provide a one-command Docker Compose deployment under `g:\工作\项目\devtool\resourse`: serve the frontend under `/devtools/` (SPA refresh must work) and use the frontend Nginx as a same-domain reverse proxy to the backend (at least `/admin-api/`, and WebSocket `/infra/ws` must work). Compose should orchestrate MySQL, Redis, backend, and frontend; keep the backend internal-only; expose the frontend via a host port mapping (default `8080:80`). 原英文问题语法无误(本英文为根据中文需求生成的等价表达)。 --- ## 访问入口 - 前端入口:`http://localhost:8080/devtools/` - 后端接口(经同域反代):`http://localhost:8080/admin-api/...` - WebSocket(经同域反代):`ws://localhost:8080/infra/ws?...` ## 部署文件 - Compose 编排:[docker-compose.devtools.yml](file:///g:/工作/项目/devtool/resourse/docker-compose.devtools.yml) - 前端镜像构建:[yudao-ui-admin-vue3/Dockerfile](file:///g:/工作/项目/devtool/resourse/yudao-ui-admin-vue3/Dockerfile) - 前端 Nginx 配置:[yudao-ui-admin-vue3/nginx/default.conf](file:///g:/工作/项目/devtool/resourse/yudao-ui-admin-vue3/nginx/default.conf) - 后端多阶段构建:[ruoyi-vue-pro/yudao-server/Dockerfile](file:///g:/工作/项目/devtool/resourse/ruoyi-vue-pro/yudao-server/Dockerfile) ## 启动步骤 1. 安装 Docker Desktop(Windows)或 Docker Engine(Linux/macOS),确保命令可用: - `docker -v` - `docker compose version` 2. 在仓库根目录执行: ```bash docker compose -f docker-compose.devtools.yml up -d --build ``` 3. 打开浏览器访问: - `http://localhost:8080/devtools/` ## 常用 Docker Compose 命令(prod 环境示例) 以下命令假设当前工作目录为 `g:\工作\项目\devtool\opsys\opsysdeploy`,并使用本目录下的 `.env.prod` 与 `docker-compose.devtools-apps.yml`: - **查看后端 server 日志:** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml logs --tail=200 server docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml logs -f server ``` - **按关键字过滤 server 日志(定位 error/exception):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml logs -f server | grep -i -E "error|exception|fail|stack" ``` - **仅重新构建后端 server 镜像(不启动):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml build server ``` - **重新创建并启动后端 server 容器(基于最新镜像):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml up -d --force-recreate server ``` 一般修改了后端配置文件(例如 `application-prod.yaml`)并重新构建镜像后,可以用第二条命令让新配置在 server 容器中生效。 - **仅重新构建前端 ui-vue3 镜像(不启动):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml build ui-vue3 ``` - **重新创建并启动前端 ui-vue3 容器(基于最新镜像):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml up -d --force-recreate ui-vue3 ``` - **同时重建并启动前后端(常用):** ```bash docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml build server ui-vue3 docker compose --env-file .env.prod -f docker-compose.devtools-apps.yml up -d --force-recreate server ui-vue3 ``` ## 方案说明 ### 1) 子路径 `/devtools/` 前端在构建阶段通过环境变量控制子路径: - `VITE_BASE_PATH=/devtools/` 并由前端 Nginx 将构建产物放置在容器内 `/usr/share/nginx/html/devtools`,通过 `location /devtools/` 进行静态资源托管与 SPA fallback(刷新不 404)。 ### 2) 同域反向代理 浏览器只访问同域端口 `8080`: - `/admin-api/` → 反代到 `server:48080/admin-api/` - `/infra/ws` → WebSocket 升级后转发到 `server:48080` - `/`(其它后端资源,如 `doc.html`、`/druid/` 等)→ 反代到 `server:48080` ### 3) 端口暴露策略 - 后端 `server`:不映射宿主机端口(仅 Compose 内网可达),降低误暴露风险 - 前端 `ui-vue3`:映射宿主机 `8080:80`,作为统一入口 如果你已有外层 Nginx/Ingress 管理 80/443,可将外层反代到 `http://:8080`,或调整 compose 端口映射。 ## 常用配置项(可选) 可通过环境变量覆盖(见 compose 文件中的默认值): - `MYSQL_DATABASE`、`MYSQL_ROOT_PASSWORD` - `VITE_BASE_PATH`、`VITE_BASE_URL`、`VITE_API_URL` ## 备注(本机校验状态) - 本机已验证:前端 `build:prod` 可构建成功;后端 `mvn -pl yudao-server -am -DskipTests package` 可构建成功 - 本机未验证:Docker Compose 启动(若 `docker` 命令不可用,请先安装 Docker) ## 对话总结与归档 本轮对话总结已归档至: - `history/2026-01-27-devtools-compose-子路径部署方案.md`