fix: 修复Docker环境下大屏地址硬编码问题
## 问题描述 Docker构建的admin镜像中大屏地址被错误硬编码,导致: 1. 容器内访问时指向错误的 /proxy-default/main 地址 2. 外网访问时无法正确跳转到大屏服务 3. 破坏了部署脚本的动态地址替换机制 ## 根本原因 Dockerfile.prod 中错误设置了 VITE_BIGSCREEN_URL,覆盖了部署脚本的动态替换逻辑: - 原设置:ENV VITE_BIGSCREEN_URL=/proxy-default(错误) - 应该保持:使用可被部署脚本替换的占位符地址 ## 解决方案 ### 1. 修复Dockerfile构建配置 - 使用 `http://localhost:8001` 作为可识别的占位符 - 避免硬编码具体IP地址或错误的代理路径 - 保持与现有部署脚本的兼容性 ### 2. 部署流程说明 正确的部署流程应该是: 1. Docker构建时:使用 `http://localhost:8001` 占位符 2. 容器启动后:`deploy-client.sh` 调用 `replace-bigscreen-url.sh` 3. 动态替换:将JS文件中的 `localhost:8001` 替换为实际地址 4. 支持场景: - Docker内访问:使用容器间通信地址 - 外网访问:使用外部可访问的IP和端口 ### 3. 技术优势 - ✅ 不破坏现有部署脚本逻辑 - ✅ 支持不同网络环境的灵活配置 - ✅ 避免硬编码IP地址的维护问题 - ✅ 保持构建镜像的通用性 ## 验证方法 1. 检查构建时的占位符:镜像中包含 `localhost:8001` 2. 检查部署后的替换:JS文件中的地址被正确替换 3. 测试大屏跳转:点击大屏链接能正确打开目标地址 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit is contained in:
@@ -34,7 +34,8 @@ COPY . .
|
||||
# 设置生产环境变量确保正确的代理配置
|
||||
ENV VITE_HTTP_PROXY=Y
|
||||
ENV VITE_SERVICE_BASE_URL=/proxy-default
|
||||
ENV VITE_BIGSCREEN_URL=/proxy-default
|
||||
# ENV VITE_BIGSCREEN_URL 由部署脚本动态替换,使用易于识别的占位符
|
||||
ENV VITE_BIGSCREEN_URL=http://localhost:8001
|
||||
ENV VITE_OTHER_SERVICE_BASE_URL='{"demo": "/proxy-default"}'
|
||||
# 添加缺失的关键环境变量
|
||||
ENV VITE_SERVICE_SUCCESS_CODE=200
|
||||
|
||||
Reference in New Issue
Block a user