Un conteneur possède son propre filesystem.
Un chemin valide dans Docker ne correspond pas automatiquement Ă un chemin du host.
Problème classique#
Le fichier fonctionne dans le conteneur :
/data/file.csv
Mais pas sur la machine locale.
Pourquoi ?
Le conteneur est isolé.
Il ne voit pas les fichiers du host sans configuration explicite.
Solution : les volumes#
On relie un dossier du host Ă un dossier du conteneur :
volumes:
- ./data:/app/data
Format :
HOST_PATH:CONTAINER_PATH
./data→ dossier local/app/data→ dossier visible dans le conteneur
Dans le code#
Toujours utiliser le chemin interne au conteneur :
/app/data/file.csv
Éviter les chemins dépendants du système :
C:\Users\...
/Users/...
Bonnes pratiques#
- Standardiser les chemins autour du
WORKDIR - Monter explicitement les dossiers nécessaires
- Utiliser
pathlibplutôt que des chaînes codées en dur - Ne jamais dépendre d’un chemin spécifique au host
Le code doit fonctionner indépendamment du système d’exploitation.