# syntax=docker/dockerfile:1
FROM python:3.12-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /app
# Install system dependencies for Pillow and asyncpg
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libpq-dev \
libjpeg-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy dependency definitions first for layer caching
COPY pyproject.toml ./
COPY src/ ./src/
COPY alembic.ini ./
COPY alembic/ ./alembic/
# Install package in editable mode
RUN pip install --no-cache-dir -e "."
# Create image storage directory
RUN mkdir -p /var/lib/vmk/images
EXPOSE 8000
# Run migrations then start the application
CMD ["sh", "-c", "alembic upgrade head && uvicorn vmk_data_collector.main:app --host 0.0.0.0 --port 8000"]