# Docker & Containerization (Go) > Dockerfile, multi-stage build, image optimizasyonu, docker-compose, container orkestrasyonu - 20 mülakat soruları - Senior - [Mülakat Soruları: Go](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari.md) ## 1. Bir Go uygulaması için multi-stage build kullanmanın temel nedeni nedir? **Cevap** Multi-stage build, derleme ortamını son image'dan ayırır. Build aşaması tam Go SDK'sını (birkaç yüz MB) içerirken, son image yalnızca derlenmiş binary'yi içerir. Bu, image boyutunu önemli ölçüde azaltır (~800MB'den birkaç MB'ye) ve üretimde gereksiz build araçlarını ortadan kaldırarak saldırı yüzeyini en aza indirir. ## 2. Üretimdeki bir Go uygulaması için boyutu ve saldırı yüzeyini en aza indirmek için hangi base image önerilir? **Cevap** scratch image, işletim sistemi içermeyen boş bir image'dır. Go, libc veya diğer sistem bağımlılıklarına ihtiyaç duymayan statik binary'lere derlendiği için scratch kullanılabilir. Bu, mümkün olan en küçük image'ları (birkaç MB) üretir ve istismar edilebilir herhangi bir araç veya shell olmadığı için en iyi güvenliği sağlar. Distroless ve alpine geçerli ancak daha az optimal alternatiflerdir. ## 3. scratch image ile uyumlu bir binary oluşturmak için hangi Go derleme flag'leri gereklidir? **Cevap** CGO_ENABLED=0, cgo'yu devre dışı bırakarak Go'yu net ve os/user gibi paketler için saf Go uygulamalarını kullanmaya zorlar. Bu olmadan binary, libc'ye dinamik bağımlılıklara sahip olurdu. GOOS ve GOARCH hedef platformu belirtir. Bu flag'lerin birleşimi, harici bağımlılığı olmayan tamamen statik bir binary üretir ve scratch için idealdir. ## 17 soru daha mevcut - Bir Go uygulaması build edilirken Docker layer önbelleğe alma nasıl optimize edilir? - scratch ile karşılaştırıldığında Go için Google Distroless image'larını kullanmanın avantajı nedir? Ücretsiz kaydol: https://sharpskill.dev/tr/login ## Diğer Go mülakat konuları - [Go Temelleri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/go-basics.md): 25 soru, Junior - [Go Veri Yapıları](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/go-data-structures.md): 20 soru, Junior - [Go Arayüzleri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/go-interfaces.md): 18 soru, Junior - [Hata Yönetimi](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/error-handling.md): 20 soru, Junior - [Goroutine Temelleri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/goroutines-basics.md): 20 soru, Junior - [Channels](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/channels.md): 22 soru, Junior - [Go Modules](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/go-modules.md): 18 soru, Mid-Level - [HTTP Sunucusu](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/http-server.md): 24 soru, Mid-Level - [HTTP İstemcisi](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/http-client.md): 18 soru, Mid-Level - [JSON Kodlama](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/json-encoding.md): 20 soru, Mid-Level - [Database/SQL](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/database-sql.md): 22 soru, Mid-Level - [context Paketi](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/context-package.md): 20 soru, Mid-Level - [Testing](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/testing.md): 22 soru, Mid-Level - [Eşzamanlılık Desenleri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/concurrency-patterns.md): 24 soru, Mid-Level - [Senkronizasyon İlkelleri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/sync-primitives.md): 22 soru, Mid-Level - [Go Web Framework'leri](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/go-web-frameworks.md): 20 soru, Mid-Level - [REST API Tasarımı](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/rest-api-design.md): 20 soru, Mid-Level - [gRPC](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/grpc.md): 22 soru, Mid-Level - [Reflection](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/reflection.md): 20 soru, Senior - [Bellek Yönetimi](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/memory-management.md): 24 soru, Senior - [Performans Optimizasyonu](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/performance-optimization.md): 22 soru, Senior - [Generics](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/generics.md): 20 soru, Senior - [Go Design Patterns](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/design-patterns.md): 24 soru, Senior - [Microservices](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/microservices.md): 24 soru, Senior - [Güvenlik ve Kimlik Doğrulama](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/security-authentication.md): 24 soru, Senior - [Kubernetes Basics](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/kubernetes-basics.md): 22 soru, Senior - [İleri Düzey Go](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/advanced-go.md): 20 soru, Senior - [CLI Geliştirme](https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/cli-development.md): 20 soru, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/tr/technologies/go/mulakat-sorulari/docker-containerization