# Build Frontend FROM node:20-slim AS frontend-build WORKDIR /app/frontend COPY frontend/package*.json ./ RUN npm install COPY frontend/ ./ RUN npm run build # Backend and Final Image FROM python:3.10-slim WORKDIR /app # Install backend dependencies COPY backend/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy backend code COPY backend/ /app/backend/ # Copy frontend build to a location where FastAPI can serve it (static files) COPY --from=frontend-build /app/frontend/dist /app/frontend/dist # Environment variables ENV PORT=7860 ENV DATABASE_URL=sqlite:///./sql_app.db # Create a simple main entry for deployment that serves both RUN echo 'from fastapi import FastAPI\n\ from fastapi.staticfiles import StaticFiles\n\ from backend.main import app as api_app\n\ \n\ app = FastAPI()\n\ \n\ app.mount("/api", api_app)\n\ app.mount("/", StaticFiles(directory="frontend/dist", html=True), name="static")\n\ \n\ if __name__ == "__main__":\n\ import uvicorn\n\ uvicorn.run(app, host="0.0.0.0", port=7860)\n\ ' > /app/deployment_main.py CMD ["python", "deployment_main.py"]