# syntax=docker/dockerfile:1.4
# Builder stage: compile dependencies
FROM python:3.10-alpine AS builder

WORKDIR /app

# Install build dependencies
RUN apk add --no-cache gcc musl-dev python3-dev mariadb-dev libffi-dev openssl-dev

# Copy requirements and install
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt

# Copy application code
COPY . .

# Final stage: minimal runtime image
FROM python:3.10-alpine AS final

WORKDIR /app

# Copy installed packages from builder
COPY --from=builder /install /usr/local
# Copy app code
COPY --from=builder /app /app

# Set production environment variables
ENV FLASK_ENV=production
ENV FLASK_APP=run.py
ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_RUN_PORT=5000

EXPOSE 5000

CMD ["flask", "run"]
