fix: 修复Docker构建和路径解析问题
- 在Dockerfile中使用npm中国镜像加速依赖安装 - 修正后端健康检查端点路径 - 修复Docker环境中图片路径解析问题 - 修正前端API地址默认值
This commit is contained in:
@@ -12,8 +12,9 @@ WORKDIR /app
|
|||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
COPY prisma ./prisma/
|
COPY prisma ./prisma/
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies with Chinese mirror
|
||||||
RUN npm ci
|
RUN npm config set registry https://registry.npmmirror.com && \
|
||||||
|
npm ci
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# Stage 2: Builder
|
# Stage 2: Builder
|
||||||
|
|||||||
@@ -69,7 +69,15 @@ export function resolveImagePath(imagePath: string): string {
|
|||||||
|
|
||||||
// 处理 /uploads/ 开头的相对路径
|
// 处理 /uploads/ 开头的相对路径
|
||||||
if (imagePath.startsWith('/uploads/')) {
|
if (imagePath.startsWith('/uploads/')) {
|
||||||
return path.join(getUploadsDir(), imagePath.replace('/uploads/', ''));
|
const resolved = path.join(getUploadsDir(), imagePath.replace('/uploads/', ''));
|
||||||
|
|
||||||
|
// 在 Docker 环境中,确保使用绝对路径
|
||||||
|
if (process.env.NODE_ENV === 'production' || fs.existsSync('/app/uploads')) {
|
||||||
|
// Docker 环境:直接使用 /app/uploads/
|
||||||
|
return `/app/uploads/${imagePath.replace('/uploads/', '')}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return resolved;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他相对路径,使用项目根目录
|
// 其他相对路径,使用项目根目录
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ services:
|
|||||||
- rapidocr
|
- rapidocr
|
||||||
- paddleocr
|
- paddleocr
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:13057/api/health"]
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:13057/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ WORKDIR /app
|
|||||||
# Copy package files
|
# Copy package files
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies with Chinese mirror
|
||||||
RUN npm ci
|
RUN npm config set registry https://registry.npmmirror.com && \
|
||||||
|
npm ci
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# Stage 2: Builder
|
# Stage 2: Builder
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { Settings, Save, CheckCircle, XCircle, Eye, EyeOff, Server, Globe, Datab
|
|||||||
|
|
||||||
// 从环境变量或 localStorage 获取 API 地址
|
// 从环境变量或 localStorage 获取 API 地址
|
||||||
const getDefaultApiUrl = () => {
|
const getDefaultApiUrl = () => {
|
||||||
return import.meta.env.VITE_API_URL || localStorage.getItem('api_base_url') || '/';
|
return import.meta.env.VITE_API_URL || localStorage.getItem('api_base_url') || '';
|
||||||
};
|
};
|
||||||
|
|
||||||
type ApiConfig = {
|
type ApiConfig = {
|
||||||
|
|||||||
BIN
test_ocr.png
Normal file
BIN
test_ocr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 230 KiB |
Reference in New Issue
Block a user