Fresh dataprep image builds fail: unpinned OPEA transitive deps + pip 22 resolver
Summary Dockerfile-dataprep_genie-ai cannot build from a cold cache. OPEA v1.3's comps/dataprep/src/requirements.txt pins only top-level packages; transitive dependencies re-resolve against today's PyPI on every uncached build. Ubuntu 22.04's pip 22.0.2 backtracks for ~56 minutes, then dies trying to compile lxml 4.6.2 from source (no cp310 wheel, no libxml2/libxslt headers in image).
Root cause chain (three distinct layers, all reproduced) Unpinned transitives + PyPI drift → pip 22 resolver death spiral → aborts on an ancient sdist. Even with a lock, packages with too-permissive ranges break at runtime: docling 2.30.0 declares docling-core <3.0 but imports legacy_doc.BaseText, removed in newer docling-core → ImportError at service start. pip 22.0.2 falsely reports ResolutionImpossible for constraints on extras-marker deps (trimesh[easy] → pycollada; extra == "easy" vs pycollada==0.9 constraint) — a resolver bug fixed in modern pip.