# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config
# Build STDIO variant (recommended for Claude Desktop, etc.)
#docker build --target stdio -t okta-mcp-server:stdio .

# Build HTTP variant (current standard for web applications)
#docker build --target http -t okta-mcp-server:http .

# Build SSE variant (deprecated, for legacy clients)
#docker build --target sse -t okta-mcp-server:sse .


FROM python:3.13-alpine AS base

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

WORKDIR /app

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

# Copy application code
COPY . .

# Set common environment variables
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONPATH=/app
ENV AM_I_IN_A_DOCKER_CONTAINER=Yes

# Create non-root user
RUN addgroup -g 1001 -S appgroup && \
    adduser -S appuser -u 1001 -G appgroup && \
    chown -R appuser:appgroup /app

USER appuser

# SSE variant (deprecated)
FROM base AS sse
ENV TRANSPORT_TYPE=sse
EXPOSE 3000
ENTRYPOINT ["python", "main.py", "--sse", "--host=0.0.0.0", "--port=3000", "--iunderstandtherisks"]

# HTTP variant (current standard for web)
FROM base AS http
ENV TRANSPORT_TYPE=http
EXPOSE 3000
ENTRYPOINT ["python", "main.py", "--http", "--host=0.0.0.0", "--port=3000", "--iunderstandtherisks"]

# STDIO variant (recommended) - LAST STAGE = DEFAULT
FROM base AS stdio
ENV TRANSPORT_TYPE=stdio
ENTRYPOINT ["python", "main.py"]
