FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ PIP_NO_CACHE_DIR=1 \ PORT=8080 WORKDIR /app COPY pyproject.toml uv.lock README.md ./ COPY src ./src RUN pip install --no-cache-dir uv \ && uv pip install --system --no-cache . COPY data ./data EXPOSE 8080 CMD ["sh", "-c", "gunicorn pluginbattery.web:app --bind 0.0.0.0:${PORT:-8080} --workers 1 --timeout 120"]