mcq-test / Dockerfile
trung.le
fix: remove unused jinja2 import from Dockerfile
d48e251
Raw
History Blame Contribute Delete
1.11 kB
# 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"]