Trim ~350MB of unreachable payload from the backend image
The image was 2.45GB, of which the venv is 1.73GB. The build was already multi-stage and already installed CPU-only torch, so the remaining weight was not build tooling - it was payload inside the installed packages that the running service can never execute. Removed in the build stage, before the runtime stage copies /opt/venv, so the bytes never enter the final image: - bundled test suites (~237MB; torch/test is 83MB, pandas/tests 40MB) - torch/include (62MB), C++ headers for compiling against libtorch - torch/bin (50MB), gtest binaries and protoc; torch_shm_manager is kept pytest and httpx2 move to requirements-dev.txt: the image copies app/, cli/, scripts/, data/ and serve.py, never tests/, so the test stack was unusable there regardless. sympy was checked and deliberately kept - 'import sentence_transformers' does pull it in through torch.fx, so removing it would break embeddings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ It does **not** start Postgres or Ollama for you - it reports them via
|
||||
cd backend
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
||||
pip install -r requirements.txt
|
||||
pip install -r requirements.txt -r requirements-dev.txt # -dev is pytest only
|
||||
|
||||
cp .env.example .env # then edit DB_PASSWORD etc.
|
||||
|
||||
@@ -198,7 +198,8 @@ backend/
|
||||
├── cli/ingest_brand.py # CLI: ingest one brand end-to-end
|
||||
├── scripts/seed_sample_data.py # load bundled sample catalogs (no LLM needed)
|
||||
├── data/seed_catalogs/*.json # bundled sample catalogs (Parle, Cadbury, ...)
|
||||
└── requirements.txt
|
||||
├── requirements.txt
|
||||
└── requirements-dev.txt
|
||||
```
|
||||
|
||||
## Running tests
|
||||
|
||||
Reference in New Issue
Block a user