# Build stage FROM python:3.11-slim AS builder WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* # Install Poetry RUN curl -sSL https://install.python-poetry.org | python3 - ENV PATH="/root/.local/bin:$PATH" RUN poetry self add "poetry-plugin-export" # Copy only dependency files to leverage Docker layer caching COPY pyproject.toml poetry.lock ./ # update lock file to avoid failure RUN poetry lock # Install dependencies RUN poetry export -f requirements.txt --without-hashes -o requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Runtime stage FROM python:3.11-slim # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 WORKDIR /app # Copy only the necessary files from the builder stage COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/bin /usr/local/bin # Copy application code COPY . . # Health check HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8718/health || exit 1 # Default command CMD ["python", "-m", "agentic_security"]