FROM python:3-alpine AS pybuilder

COPY . .
RUN apk add py3-uv
RUN uv build

# Use an official Node.js runtime as a base
FROM node:20-alpine AS runtime

# Create app directory
WORKDIR /app

RUN apk add python3 py3-pip py3-uv
# RUN pip install uv

# Copy package.json and install dependencies
COPY package*.json ./
RUN npm install --omit=dev

# Copy wheel from builder and install
COPY --from=pybuilder dist/*.whl /app/dist/
RUN uv pip install --system --break-system-packages /app/dist/*.whl
RUN rm -r /app/dist/

# Copy the rest of the app
COPY cli.js .

# Make the script executable
RUN chmod +x cli.js

# Make ephemeral cache directory
RUN mkdir ./cache

ENTRYPOINT actual-imap-poll
