35 lines
811 B
Docker
35 lines
811 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM python:3.11-slim
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
ca-certificates \
|
|
libpq-dev \
|
|
gcc \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install uv for fast Python package management
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy dependency definitions
|
|
COPY pyproject.toml /app/
|
|
|
|
# Install Python dependencies
|
|
RUN uv pip install --system --no-cache -r pyproject.toml
|
|
|
|
# Copy source code and database migrations
|
|
COPY src/ /app/src/
|
|
COPY schema.sql /app/
|
|
COPY README.md /app/
|
|
|
|
# Install package in editable mode
|
|
RUN uv pip install --system --no-cache -e .
|
|
|
|
ENV PYTHONPATH="/app/src"
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
ENTRYPOINT ["oem-crawler"]
|
|
CMD ["--brand", "bmw", "--limit", "50"]
|