# ARM estándar · una sola imagen para Cloud Run.
# Etapa 1 compila el front (Vue + Vite); etapa 2 corre FastAPI, que sirve /api y el front.
# Para un build reproducible, fija las imágenes base por digest (FROM imagen@sha256:...) y
# las dependencias con hashes (ver README, "Build reproducible").
FROM node:22-slim AS front
WORKDIR /front
COPY frontend/package*.json ./
RUN npm install --no-audit --no-fund
COPY frontend/ ./
RUN npm run build

FROM python:3.12-slim
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PORT=8080 FRONTEND_DIST=/app/frontend/dist
WORKDIR /app
COPY backend/requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY backend/app ./app
COPY --from=front /front/dist ./frontend/dist
RUN useradd -r -u 10001 app && chown -R app /app
USER app
EXPOSE 8080
CMD exec uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-8080} --proxy-headers --forwarded-allow-ips='*'
