File size: 847 Bytes
ebdfd3b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dc2650a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM python:3.11

# 安装 Node.js (满足 >=18)及必要工具
RUN apt-get update \
  && apt-get install -y --no-install-recommends nodejs npm \
  && rm -rf /var/lib/apt/lists/*

# 从 uv 官方镜像复制 uv
COPY --from=ghcr.io/astral-sh/uv:0.9.26 /uv /uvx /bin/

WORKDIR /app

# 先复制依赖描述文件以利用缓存
COPY frontend/package.json frontend/package-lock.json ./frontend/
COPY backend/pyproject.toml backend/uv.lock ./backend/

# 安装依赖(Node + Python)
RUN npm ci --prefix frontend \
  && cd backend && uv sync --frozen --no-dev

# 复制项目源码
COPY . .

# 构建前端静态资源
RUN npm run build --prefix frontend

ENV FLASK_HOST=0.0.0.0 \
    FLASK_PORT=7860 \
    FLASK_DEBUG=false

EXPOSE 7860

# 启动后端并托管前端静态文件
CMD ["sh", "-lc", "cd /app/backend && .venv/bin/python run.py"]