FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive

# Layer 1: OS packages - only rebuilds if this changes
RUN apt-get update && apt-get install -y \
    python3 python3-pip x3270 s3270 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Layer 2: Python deps - only rebuilds if requirements.txt changes
COPY requirements.txt .
RUN pip3 install --break-system-packages -r requirements.txt

# Layer 3: Python code - rebuilds on every code change
COPY *.py .

EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--log-level", "info"]
