inżynieria
Architektura Docker dla inżynierów CI
Daemon, Containerd, BuildKit i snapshotter — co każdy z nich robi i który spowalnia kompilację.
{autor} · {rola} · {data} · {minuty} {minutyLabel}
Kawałki
Który jest powolny
- Powolne przed wykonaniem jakiegokolwiek kroku → uruchomienie demona i ściągnięcie obrazu; naprawić za pomocą ciepłej prowadnicy i przeciąganej pamięci podręcznej
- Powolne podczas KOPIOWANIA i URUCHAMIANIA z długim oczekiwaniem na we/wy → migawka na dysku podłączonym do sieci; napraw za pomocą lokalnego NVMe
- Odbudowanie warstw, które nie uległy zmianie → Pamięć podręczna BuildKit; napraw kolejność instrukcji i zaplecze pamięci podręcznej
- arm64 katastrofalnie powolny → QEMU, a nie Docker; naprawić z rodzimymi biegaczami
Twój następny build może być dwa razy szybszy i o połowę tańszy
Zacznij za darmo. Odejście to ta sama jedna linia — ten diff też publikujemy.
Powiązane
CI, gdy twoi koledzy z drużyny są agentamiAgenci kodujący AI naciskają znacznie częściej niż ludzie. Oto, jak zmienia to projekt rurociągu i kontrolę kosztów.Dlaczego publikujemy instrukcje dotyczące wyjściaKażda strona migracji w tej witrynie zawiera różnicę umożliwiającą migrację z powrotem do nas. Oto uzasadnienie.Czego nauczyliśmy się, wykonując milion zadań CICzas oczekiwania, zachowanie pamięci podręcznej, właściwy rozmiar i tryby awarii, które pojawiają się tylko w dużej skali.Przestań ponawiać niestabilne testyAutomatyczne ponowne próby przekształcają prawdziwy błąd w sporadyczny i szkolą Twój zespół, aby nie ufał każdej porażce.