Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Multi-stage Build Derinlemesine: Target'lar, Test Stage'i, Paralel Stage'ler ve Image Boyutu
Multi-stage build'de son image yalnız son stage'in içeriğinden oluşur ve BuildKit yalnız hedefe giden stage'leri, birbirine bağlı olmayanları paralel build eder. Bookstore.Tools'u restore, build, test, export, debug ve final stage'lerine bölüp image'ı 1,34 GB'tan 143 MB'a indiriyor, test stage'inin ve chiseled image'ın sınırlarını görüyor, --platform=$BUILDPLATFORM ile QEMU'suz iki mimarili image üretiyoruz.
Dockerfile Temelleri: FROM, RUN, COPY, WORKDIR, ENV, ARG, USER, EXPOSE, CMD ve ENTRYPOINT
Dockerfile'da dosya sistemine dokunan RUN, COPY, ADD ve WORKDIR layer üretir; ENV, ARG, USER, EXPOSE, CMD ve ENTRYPOINT yalnız image config'ine yazılır. Bookstore.Tools için ilk Dockerfile'ı yazıp docker build --check ile taslaktaki hataları yakalıyor, ENTRYPOINT ile CMD'nin nasıl birleştiğini, ARG ile verilen token'ın docker history'de göründüğünü, .dockerignore'un etkisini, EXPOSE'un port açmadığını ve apt-get cache tuzağını gerçek çıktılarla görüyoruz.