# Build stage: install deps in uv image
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder
WORKDIR /app
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev
# Runtime stage: minimal image
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends cron supervisor && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy Python + venv from builder
COPY --from=builder /app/.venv /app/.venv
ENV PATH="/app/.venv/bin:$PATH"
# Copy source
COPY ./src/ ./src/
RUN mkdir -p /app/src/workspace /app/src/log
# Cron
COPY daily.sh daily.sh
RUN chmod +x /app/daily.sh
COPY crontab /mycron
RUN chmod 644 /mycron && crontab /mycron
# Supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]