| |
| |
| |
| FROM node:22-slim AS frontend-builder |
|
|
| |
| ARG SPACE_HOST |
|
|
| |
| RUN corepack enable && corepack prepare pnpm@latest --activate |
|
|
| |
| WORKDIR /app/frontend |
|
|
| |
| COPY frontend/pnpm-lock.yaml frontend/package.json ./ |
|
|
| |
| RUN pnpm install --frozen-lockfile |
|
|
| |
| COPY frontend/ ./ |
|
|
| |
| ENV VITE_APP_ENV=production |
| RUN if [ -n "$SPACE_HOST" ]; then \ |
| echo "Building with SPACE_HOST: $SPACE_HOST"; \ |
| VITE_BACKEND_URL="https://$SPACE_HOST" pnpm build; \ |
| else \ |
| echo "Building without SPACE_HOST"; \ |
| VITE_BACKEND_URL="http://127.0.0.1:9481" \ |
| pnpm build; \ |
| fi |
|
|
|
|
| |
| |
| |
| FROM python:3.12-slim AS backend-builder |
|
|
| |
| RUN pip install --no-cache-dir uv |
|
|
| |
| WORKDIR /app |
|
|
| |
| COPY backend/pyproject.toml backend/uv.lock ./backend/ |
| RUN cd backend && uv pip install --no-cache-dir --system . |
|
|
| |
| COPY backend/ ./backend/ |
|
|
| |
| COPY --from=frontend-builder /app/frontend/dist ./frontend/dist |
|
|
| |
| |
| |
| FROM python:3.12-slim |
|
|
| |
| RUN useradd -m appuser |
|
|
| |
| RUN mkdir -p /app/tmp_data && chown appuser:appuser /app/tmp_data |
|
|
| WORKDIR /app |
|
|
| |
| COPY --from=backend-builder /usr/local /usr/local |
| COPY --from=backend-builder /app /app |
|
|
| |
| RUN chown -R appuser:appuser /app/tmp_data |
|
|
| |
| ENV FRONTEND_PATH=/app/frontend/dist |
|
|
| |
| ENV HF_HUB_DISABLE_EXPERIMENTAL_WARNING=1 |
|
|
| |
| USER appuser |
|
|
| |
| EXPOSE 9481 |
|
|
| |
| CMD ["uvicorn", "backend.src.app:app", "--host", "0.0.0.0", "--port", "9481"] |
|
|