FROM python:3.11-slim AS dependencies ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ APP_DIR=/app WORKDIR /app RUN apt-get update \ && apt-get install --no-install-recommends -y \ gcc \ libc6-dev \ libgomp1 \ linux-libc-dev \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./requirements.txt RUN pip install --no-cache-dir -r requirements.txt \ && apt-get purge -y gcc libc6-dev linux-libc-dev \ && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* FROM dependencies AS migrator COPY app/ ./app/ COPY migrations/ ./migrations/ COPY alembic.ini ./alembic.ini CMD ["alembic", "-c", "alembic.ini", "upgrade", "head"] FROM dependencies AS runtime RUN pip uninstall -y alembic COPY app/ ./app/ COPY datafactory/ ./datafactory/ COPY wsgi.py gunicorn_config.py ./ RUN mkdir -p /app/logs /data/upload /data/archive EXPOSE 5500 CMD ["gunicorn", "--config", "gunicorn_config.py", "wsgi:application"]