Wpis z mikrobloga

@Piterowsky: Akurat do springa to jest całkiem dużo materiałów, jeśli chodzi o stawianie aplikacji w kontenerze (również przy pomocy docker-compose, który jest znacznym udogodnieniem przy stawianiu powiązanych ze sobą kontenerów, np. aplikacja + baza danych), trzeba tylko wiedzieć, co chce się w google wyszukać
@Piterowsky: odnośnie wersji, w dockerze build powinien być reproducible. Czyli te same źródła mają zawsze generować ten sam binarny obraz. Jest mnóstwo softu, który łamie tą zasadę, np. dodając do binariów timestampy w domyślnej konfiguracji (xjc, mapstruct, itd).
@Piterowsky: zawsze warto wyłączyć. Timestampy i informacje związane ze środowiskiem kompilacji psują incremental builds, bo zmieniają checksumę binarek -> gradle widzi zmianę zależności i będzie kompilował zależne moduły od nowa. To jest rak z którym należy walczyć na wszelkie sposoby, jeśli tylko gdzieś się go wykryje.
@Piterowsky: w dużej skali jest to cholernie ważne - duża aplikacja z setkami modułów. Poprzez sprawdzanie sum kontrolnych zależności mogę na tej podstawie automatycznie podbijać wersję artefaktów (jeśli zmienił się artefakt lub jego zależności). Gradle używa tego wewnętrznie do cacheowania tasków (suma kontrolna wejść to marker danych wyjścia).
Druga kwestia, jeśli rozsądnie podzieli się obraz dockerowy na warstwy, chroni to przed zasraniem repozytorium niepotrzebnymi warstwami przy każdym wydaniu wersji. Wydajemy się