Skip to content

Inventaire des containers Docker (poste Windows) ​

Snapshot pris le 2026-05-04 sur la machine Kael (Windows 11 + Docker Desktop / WSL2).

Résumé ​

ContainerImageStatutRôleObsolète ?
tcg-collector-postgres-1pgvector/pgvector:pg16Up (healthy)Base Postgres + extension vector du backend TCGNon — cœur du stack
tcg-collector-api-1tcg-collector-api (custom)UpAPI Fastify Node 22 (lecture de la base) sur :8080Non
tcg-collector-nginx-1nginx:alpineUpReverse proxy + sert /images et l'app probe sur :8081Non
tcg-vision-apitcg-vision-api:latest (custom)Up (healthy)Scanner de cartes : DINOv2 + FAISS (~30 370 cartes), endpoint /scan-compat sur :8000Non — utilisé par l'app RN
tcg-collector-embeddings-1tcg-collector-embeddings (custom)Up (healthy)Ancien sidecar embeddings DINOv2 (interne :8000)Probablement oui — voir ci-dessous
tcg-collector-ingest-1tcg-collector-ingest (custom)Exited (1) il y a 5 joursWorker one-shot d'ingestion TCGdex → Postgres + imagesNon, mais en erreur (à réparer)

Détail par container ​

tcg-collector-postgres-1 — Base de données ​

  • Image : pgvector/pgvector:pg16 (Postgres 16 + extension vector requise par la migration 0004_card_embeddings.sql).
  • Volume : bind mount tcg-collector-backend/data/pg → /var/lib/postgresql/data (~321 MB actuellement).
  • Port : 5432 exposé.
  • À garder : oui. C'est le seul état applicatif non régénérable sans relancer une ingestion complète.

tcg-collector-api-1 — API HTTP ​

  • Image : buildée depuis tcg-collector-backend/docker/api.Dockerfile (Node 22 + Fastify).
  • Dépend de : postgres (healthcheck), optionnellement embeddings via EMBEDDINGS_URL.
  • Port : 8080→3000.
  • Sources : tcg-collector-backend/src/api/.

tcg-collector-nginx-1 — Reverse proxy & static ​

  • Sert /images/** (cache immutable) et reverse-proxy /api/** → service api.
  • Config : tcg-collector-backend/docker/nginx.conf.
  • Port : 8081→80.

tcg-vision-api — Scanner de cartes (recommandé) ​

  • Sidecar DINOv2 + index FAISS prébuilt (~30 370 cartes Pokémon / One Piece / Lorcana).
  • Expose /scan (upstream) et /scan-compat (JSON enrichi TCGdex pour le client RN poc-tcg-collector).
  • Volume nommé : tcg-collector_tcg-vision-torch-cache (cache torch, ~85 MB, regénérable).
  • Port : 8000.

tcg-collector-embeddings-1 — Ancien sidecar embeddings ​

  • Sidecar embeddings basique (DINOv2 small) introduit avant tcg-vision.
  • Le commentaire dans compose.yml le marque comme optionnel : "the api gracefully degrades to pHash + OCR if it's down".
  • tcg-vision-api couvre désormais le besoin scan de manière plus complète (pHash + ANN + enrichissement TCGdex).
  • Verdict : à confirmer en relisant EMBEDDINGS_URL dans .env. S'il pointe encore sur http://embeddings:8000 et que le code de l'API l'appelle, garder. Sinon → supprimer du compose et libérer ~1.25 GB d'image.

tcg-collector-ingest-1 — Worker d'ingestion (en erreur) ​

  • One-shot, pas un service long-running (restart: "no").
  • Dernier exit code 1. Cause :
    ERROR ingest failed: error: table tid from new index tuple (4,21) overlaps with invalid duplicate
    tuple at offset 55 of block 34 in index "cards_set_id_idx"
  • C'est une corruption d'index Postgres, pas un bug applicatif. À réparer avant de migrer :
    bash
    docker exec -it tcg-collector-postgres-1 psql -U tcg -d tcg -c "REINDEX INDEX cards_set_id_idx;"
    # ou plus large
    docker exec -it tcg-collector-postgres-1 psql -U tcg -d tcg -c "REINDEX TABLE cards;"
    Puis relancer :
    bash
    docker compose -f docker/compose.yml run --rm ingest
    → Si la base est repartie de zéro sur le VPS (cas recommandé), cette corruption n'a pas besoin d'être migrée.

Volumes & données sur disque ​

DonnéeTailleRégénérable ?
data/pg (Postgres)~321 MBOui via ingest (~30 min selon réseau / rate-limit TCGdex)
data/images (visuels cartes)~1.9 GBOui via ingest avec INGEST_IMAGES=true (long, dépend du débit)
volume nommé tcg-vision-torch-cache~85 MBOui automatiquement au premier boot

Stacks orphelins / réseaux à nettoyer ​

docker network ls montre encore :

  • routines_default — réseau du compose routines/ (ok si vous comptez l'exécuter).
  • solidity-dojo_default — projet déconnecté du repo actuel ; à supprimer si plus utilisé :
    bash
    docker network rm solidity-dojo_default