| |
| |
|
|
| |
| FROM node:20-alpine AS frontend |
| WORKDIR /app/frontend |
| COPY frontend/package.json frontend/package-lock.json* ./ |
| RUN npm ci --no-audit --no-fund |
| COPY frontend/ ./ |
| RUN npm run build |
|
|
| |
| FROM python:3.12-slim |
| WORKDIR /app |
| ENV PYTHONDONTWRITEBYTECODE=1 \ |
| PYTHONUNBUFFERED=1 \ |
| PIP_DISABLE_PIP_VERSION_CHECK=1 |
|
|
| |
| COPY backend/requirements.txt ./ |
| RUN pip install --no-cache-dir -r requirements.txt |
|
|
| |
| COPY backend/ ./ |
|
|
| |
| COPY --from=frontend /app/frontend/dist ./app/static |
|
|
| |
| ENV DATA_DIR=/tmp/amalfa-data \ |
| CREATIVITY_EXAMPLES_DIR=/tmp/amalfa-data/creativity_examples |
| RUN mkdir -p /tmp/amalfa-data/creativity_examples |
| ENV PORT=7860 |
|
|
| EXPOSE 7860 |
|
|
| |
| WORKDIR /app |
| CMD uvicorn app.main:app --host 0.0.0.0 --port ${PORT} |
|
|