Closed yurnov closed 3 months ago
спробуємо поганять гілку, коли закінчимо з #185
не бачу перепон перелізти на 3.12 можна поки все зробити для цього
спробуємо поганять гілку, коли закінчимо з #185
я тоді поки ревертну форматування зроблені за допомогою black
, це повністю автоматичні зміни, і зробити їх ще раз буде простіше, аніж робити ребейз після мерджа змін.
І подивлюсь що там із 3.12 у рамках цього ж PR
Результат мені подобається:
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 3.10-slim 48cd7c0e32e8 7 seconds ago 144MB
test 3.10.6 f6960601ed3f 46 seconds ago 936MB
test 3.12-slim dc561d600b05 2 minutes ago 149MB
ghcr.io/hadolint/hadolint latest da13a5ec2e84 16 months ago 2.43MB
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ docker inspect test:3.12-slim | jq '.[0].RootFS.Layers' | grep sha | wc -l
7
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ docker inspect test:3.10-slim | jq '.[0].RootFS.Layers' | grep sha | wc -l
8
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $ docker inspect test:3.10.6 | jq '.[0].RootFS.Layers' | grep sha | wc -l
12
@yurnov ➜ /workspaces/ukraine_alarm_map/deploy/explosions (docker-optimization) $
один контейнер довелось залишити на повній версіі, бо там ліба для генераціі 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
. Ця зміна зроблена окремим комітом, на випадок якщо автори репозиторію з такі зміни пофрмутвання не підтртмують, зміни легко ревертнути.