first commit

This commit is contained in:
2025-10-14 17:25:55 +05:30
parent c24f610178
commit a90d8b3a68

View File

@ -1,23 +1,35 @@
# Backend Dockerfile
FROM python:3.10-slim
# syntax=docker/dockerfile:1.4
# Builder stage: compile dependencies
FROM --platform=$BUILDPLATFORM python:3.10-alpine AS builder
WORKDIR /app
# Install system dependencies (for mysqlclient or pymysql)
RUN apt-get update && apt-get install -y gcc python3-dev default-libmysqlclient-dev && rm -rf /var/lib/apt/lists/*
# Install build dependencies
RUN apk add --no-cache gcc musl-dev python3-dev mariadb-dev libffi-dev openssl-dev
# Copy dependencies
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# Copy requirements and install
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
# Copy project files
# Copy application code
COPY . .
# Expose Flask port
# 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
# Environment (set via docker-compose)
ENV FLASK_ENV=production
# Start the Flask app
CMD ["python", "run.py"]
CMD ["flask", "run"]