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"]