Skip to content
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

Closed
wants to merge 74 commits into from

Conversation

yurnov
Copy link
Contributor

@yurnov yurnov commented Apr 2, 2024

Метою цого PR є невелика опмимізація поточних Dockerfile шляхоч заміни імеджа з python:3.10.6 на python:3.10-slim.

Результат:

@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ docker images
REPOSITORY   TAG         IMAGE ID       CREATED          SIZE
test         3.10-slim   f2c4efdd42c6   11 seconds ago   144MB
test         3.10.6      5735932c23a3   42 seconds ago   936MB
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ 

python:3.10-slim базується на Debian 12 "Bookworm", який є current stable release, у той час як python:3.10.6 на (Debian 11 “bullseye”)[https://www.debian.org/releases/bullseye/] (current oldstable release), і загалом, я не маю нічого проти bullseye, але також і не бачу сенсу триматись за bullseye для базового імеджа для Python. У будь-якому разі, якщо є аргементовані зауваження до зауваження bookworm, готовий змінити у PR імедж на 3.10-slim-bullseye.

Станом на зараз Python 3.10 у стані security (див (PEP-619)[https://peps.python.org/pep-0619/]), і з його використанням немає проблем, але версія 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)[https://peps.python.org/pep-0701/]), що робить їх використання простішим і більш інтуїтивним, проте я не став пропонувати такий перехід версій, оскільки я не перевірив сумісіність усіх бібліотек та коду з 3.12

У будь-якому випадку, найвідчутнішою зміною є прехід на slim імедж, результат якого можна бачити у прикладі на початку опису цього PR-у.

Додатково, я трохи реформатував python код за допомогою (black)[https://github.com/psf/black], таке форматування робить код трохи приємнішим для читання. Зміни були зроблені в автоматичному режимі за допомогою black --line-length 120 --target-version py310 deploy з використанням black==24.3.0. Ця зміна зроблена окремим комітом, на випадок якщо автори репозиторію з такі зміни пофрмутвання не підтртмують, зміни легко ревертнути.

github-actions bot and others added 30 commits March 20, 2024 18:42
Опція ігнорування Нічного режиму для звуків при тривозі, інші незначні покращення
Налаштування часу показу нових тривог i відбою
@yurnov
Copy link
Contributor Author

yurnov commented Apr 2, 2024

PR у неправилтний бранч

@yurnov yurnov closed this Apr 2, 2024
v00g100skr added a commit that referenced this pull request Apr 4, 2024
Оптимізація Dockerfile та реформутування Python коду для легшого сприйняття (повторно до #186)
@v00g100skr v00g100skr added the сервер Pull requests that update a dependency file label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
сервер Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants