Czy jest jakaś wada korzystania z PYTHONDONTWRITEBYTECODE w Dockerze?

9

W wielu samouczkach Docker opartych na Pythonie (takich jak: ten ) używają tej opcji PYTHONDONTWRITEBYTECODE, aby Python unikał zapisywania plików .pyc podczas importu modułów źródłowych (Jest to równoważne z określeniem opcji -B).

Jakie są ryzyko i zalety konfiguracji tej opcji?

floatingpurr
źródło
aby ponownie wykorzystać rozmiar obrazu
LinPy
3
Jakieś wady pod względem wydajności?
floatingpurr

Odpowiedzi:

3

Kiedy uruchomisz pojedynczy proces Pythona w kontenerze, który nie spawnuje innych procesów Pythona w trakcie jego życia, nie ma w tym „ryzyka”.

Przechowywanie kodu bajtowego na dysku służy do kompilacji Pythona w kod bajtowy tuż po pierwszym wywołaniu programu i jego bibliotek zależnych w celu zapisania tego kroku przy kolejnych wywołaniach. W kontenerze proces działa tylko raz, dlatego ustawienie tej opcji ma sens.

hek2mgl
źródło
Komunikat „zabierz do domu” jest taki, że ta opcja jest przydatna i bezpieczna przez 99% czasu w przypadku projektu Docker. Dobrze?
floatingpurr
1
Tak jak powiedziałem, jest w porządku, jeśli nie spawnujesz innych procesów Pythona niż sam proces konteneryzowany podczas życia kontenera.
hek2mgl