rustocr 0.6.0

High-performance Rust CLI for EasyOCR with 80+ language support, featuring server mode and batch processing
FROM rust:1.75 as builder

WORKDIR /app

# Copy manifests
COPY Cargo.toml Cargo.lock ./

# Copy source
COPY src ./src
COPY easyocr_bridge.py easyocr_server.py easyocr_server_enhanced.py ./

# Build release binary
RUN cargo build --release

# Runtime stage
FROM python:3.11-slim

# Install system dependencies
RUN apt-get update && apt-get install -y \
    libgomp1 \
    libglib2.0-0 \
    libsm6 \
    libxext6 \
    libxrender-dev \
    libgl1-mesa-glx \
    && rm -rf /var/lib/apt/lists/*

# Install Python dependencies
RUN pip install --no-cache-dir \
    easyocr2 \
    fastapi>=0.104.0 \
    uvicorn[standard]>=0.24.0 \
    python-multipart>=0.0.6 \
    pydantic>=2.0.0

# Copy binary from builder
COPY --from=builder /app/target/release/rustocr /usr/local/bin/

# Copy Python scripts
COPY --from=builder /app/easyocr_bridge.py /usr/local/bin/
COPY --from=builder /app/easyocr_server.py /usr/local/bin/
COPY --from=builder /app/easyocr_server_enhanced.py /usr/local/bin/

# Set working directory
WORKDIR /data

# Expose server port
EXPOSE 8000

# Default command
CMD ["rustocr", "--help"]