Dzisiaj w pracy bawiłem się z "nowymi" funkcjonalnościami...
Dzisiaj w pracy bawiłem się z "nowymi" funkcjonalnościami docker build z buildkit.
Wymieniamy kaniko i to był dobry moment na przyjrzenie się bind mount, name context, remote cache, secret mount i multi-platform build - czyli cała kolekcja rzeczy, za które developerzy nienawidzą dockerfile.
W połączeniu z multistage build Dockerfile staje się zupełnie nieczytelny dla kogoś kto zaczyna z dockerem.
Za to budowanie 7 docker image dla jednego projektu w naszym monorepo (z dependency pomiędzy nimi) spadło z przeszło 2h do 12min!
Całość od A-Z (od joba na GitLab CI po wszystkie Dockerfile) zajęła mi lekko ponad 7h patrząc od pierwszego do ostatniego commita i merge. Zwróci się do końca tygodnia z nawiązką.
Zostało jeszcze napisać jakiś sensowny manual, aby można było rozpropagować to na resztę ponad 100 projektów i setki imagey. Oszczędność w tysiącach godzin na sprint w czekaniu na koniec CI... Skończy się picie kawy ;)