File size: 755 Bytes
ca5f288
e83859c
ca5f288
 
 
e83859c
 
ca5f288
e83859c
ca5f288
 
e83859c
ca5f288
e83859c
09f9bba
 
 
 
 
 
 
e83859c
09f9bba
 
e83859c
 
09f9bba
e83859c
 
ca5f288
09f9bba
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
# =========================
# 1) Web build stage
# =========================
FROM node:20-slim AS web_builder
WORKDIR /web
COPY web/package*.json ./
RUN npm install
COPY web/ ./
RUN npm run build   # -> outputs /web/build (per your log)

# =========================
# 2) API runtime stage
# =========================
FROM python:3.11-slim

WORKDIR /app

# ---- Python deps ----
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

# ---- Copy API source ----
COPY api/ /app/api/

# ---- Copy built web assets ----
COPY --from=web_builder /web/build /app/web/build

# ---- Run API (serves web build too) ----
ENV PORT=7860
EXPOSE 7860
CMD ["uvicorn", "api.server:app", "--host", "0.0.0.0", "--port", "7860"]