Contexte
Lors de l'exécution de scripts Python dans des conteneurs Docker, le comportement de sortie peut différer selon que le conteneur est exécuté en mode interactif ou détaché mode.
Problème
En mode détaché (indicateur -d), les scripts Python peuvent n'imprimer aucune sortie, même si le conteneur semble fonctionner normalement. Ce problème affecte les applications Python (version 2.7) démarrées avec CMD ["python", "main.py"] dans leur Dockerfile.
Cause
Le problème vient de Comportement de sortie tampon par défaut de Python. Lors de l'exécution détachée, les tampons de sortie du conteneur ne sont pas vidés automatiquement, ils s'accumulent donc jusqu'à ce qu'un certain seuil soit atteint. Il en résulte une absence de sortie visible lors du détachement.
Solution
Pour résoudre ce problème, utilisez une sortie sans tampon (indicateur -u) :
CMD ["python", "-u", "main.py"]
Cela force stdout et stderr à être sans tampon, permettant à la sortie d'être affichée immédiatement en mode détaché. conteneurs.
Explication
En activant la sortie sans tampon, le la sortie du conteneur peut être visualisée en temps réel pendant l'exécution détachée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!