-
-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Оптимізація Dockerfile та реформутування Python коду для легшого сприйняття (повторно до #186) #187
Conversation
спробуємо поганять гілку, коли закінчимо з #185 |
не бачу перепон перелізти на 3.12 |
я тоді поки ревертну форматування зроблені за допомогою І подивлюсь що там із 3.12 у рамках цього ж PR |
This reverts commit faef29b.
bump aiohttp to 3.9.3, changes https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst#393-2024-01-29
- ADD replaced with COPY as it recommended best practice (please see https://github.com/hadolint/hadolint/wiki/DL3020) - pip install is now done in a single RUN command to reduce the number of layers created as recommended best practice, please see https://docs.docker.com/develop/develop-images/instructions/#add-or-copy
Результат мені подобається:
|
один контейнер довелось залишити на повній версіі, бо там ліба для генераціі svg на слімі не працювала |
Метою цого PR є невелика опмимізація поточних Dockerfile шляхоч заміни імеджа з
python:3.10.6
наpython:3.10-slim
.Результат:
python:3.10-slim
базується на Debian 12 "Bookworm", який є current stable release, у той час якpython:3.10.6
на Debian 11 “bullseye” (current oldstable release), і загалом, я не маю нічого проти bullseye, але також і не бачу сенсу триматись за bullseye для базового імеджа для Python. У будь-якому разі, якщо є аргементовані зауваження до зауваження bookworm, готовий змінити у PR імедж на3.10-slim-bullseye
.Станом на зараз Python 3.10 у стані security (див PEP-619), і з його використанням немає проблем, але версія 3.10.6 доволі стара, і раціонаьно оновитись до новішої (трохи думок нижче), в межах 3.10.x актуальною є 3.10.14, власне вона ж і є у поточному імежжі
python:3.10-slim
. Я спеціально залищивpython:3.10-slim
а не фіксував3.10.14-slim
для автоматичного оновлення до версій наступних оновлень безпеки, але розумію підхід фіксувати конкретні версії, і якщо він прийнятий у даному репозиторії, за запитом виправлю на3.10.14-slim-bookworm
.Можливо раціонально розглянути оновлення Python до 3.12, там з приємного краще формалізоване використанні f-string (дивись PEP-701), що робить їх використання простішим і більш інтуїтивним, проте я не став пропонувати такий перехід версій, оскільки я не перевірив сумісіність усіх бібліотек та коду з 3.12
У будь-якому випадку, найвідчутнішою зміною є прехід на
slim
імедж, результат якого можна бачити у прикладі на початку опису цього PR-у.Додатково, я трохи реформатував python код за допомогою black, таке форматування робить код трохи приємнішим для читання. Зміни були зроблені в автоматичному режимі за допомогою
black --line-length 120 --target-version py310 deploy
з використаннямblack==24.3.0
. Ця зміна зроблена окремим комітом, на випадок якщо автори репозиторію з такі зміни пофрмутвання не підтртмують, зміни легко ревертнути.