# Docker & Containerization (Go) > Dockerfile, multi-stage build, ottimizzazione delle immagini, docker-compose, orchestrazione dei container - 20 domande da colloquio - Senior - [Domande da colloquio: Go](https://sharpskill.dev/it/technologies/go/domande-colloquio.md) ## 1. Qual è il motivo principale per usare un multi-stage build per un'applicazione Go? **Risposta** Il multi-stage build separa l'ambiente di compilazione dall'immagine finale. Lo stage di build contiene l'intero SDK Go (diverse centinaia di MB), mentre l'immagine finale contiene solo il binario compilato. Questo riduce drasticamente la dimensione dell'immagine (da ~800MB a pochi MB) e minimizza la superficie di attacco eliminando gli strumenti di build non necessari in produzione. ## 2. Quale immagine di base è consigliata per un'applicazione Go in produzione per minimizzare dimensione e superficie di attacco? **Risposta** L'immagine scratch è un'immagine vuota senza sistema operativo. Go compila in binari statici che non necessitano di libc o altre dipendenze di sistema, rendendo scratch utilizzabile. Questo produce le immagini più piccole possibili (pochi MB) e offre la migliore sicurezza poiché non ci sono strumenti o shell sfruttabili. Distroless e alpine sono alternative valide ma meno ottimali. ## 3. Quali flag di compilazione Go sono necessari per creare un binario compatibile con un'immagine scratch? **Risposta** CGO_ENABLED=0 disabilita cgo, forzando Go a usare implementazioni pure Go per package come net e os/user. Senza questo, il binario avrebbe dipendenze dinamiche da libc. GOOS e GOARCH specificano la piattaforma di destinazione. Questi flag combinati producono un binario completamente statico senza dipendenze esterne, ideale per scratch. ## Altre 17 domande disponibili - Come ottimizzare il caching dei layer Docker durante il build di un'applicazione Go? - Qual è il vantaggio di usare le immagini Google Distroless per Go rispetto a scratch? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Go - [Fondamenti di Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-basics.md): 25 domande, Junior - [Strutture dati in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-data-structures.md): 20 domande, Junior - [Interfacce in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-interfaces.md): 18 domande, Junior - [Gestione degli errori](https://sharpskill.dev/it/technologies/go/domande-colloquio/error-handling.md): 20 domande, Junior - [Goroutine di base](https://sharpskill.dev/it/technologies/go/domande-colloquio/goroutines-basics.md): 20 domande, Junior - [Channels](https://sharpskill.dev/it/technologies/go/domande-colloquio/channels.md): 22 domande, Junior - [Go Modules](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-modules.md): 18 domande, Mid-Level - [Server HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-server.md): 24 domande, Mid-Level - [Client HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-client.md): 18 domande, Mid-Level - [Codifica JSON](https://sharpskill.dev/it/technologies/go/domande-colloquio/json-encoding.md): 20 domande, Mid-Level - [Database/SQL](https://sharpskill.dev/it/technologies/go/domande-colloquio/database-sql.md): 22 domande, Mid-Level - [Pacchetto context](https://sharpskill.dev/it/technologies/go/domande-colloquio/context-package.md): 20 domande, Mid-Level - [Testing](https://sharpskill.dev/it/technologies/go/domande-colloquio/testing.md): 22 domande, Mid-Level - [Pattern di concorrenza](https://sharpskill.dev/it/technologies/go/domande-colloquio/concurrency-patterns.md): 24 domande, Mid-Level - [Primitive di sincronizzazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/sync-primitives.md): 22 domande, Mid-Level - [Framework web Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-web-frameworks.md): 20 domande, Mid-Level - [Progettazione di API REST](https://sharpskill.dev/it/technologies/go/domande-colloquio/rest-api-design.md): 20 domande, Mid-Level - [gRPC](https://sharpskill.dev/it/technologies/go/domande-colloquio/grpc.md): 22 domande, Mid-Level - [Reflection](https://sharpskill.dev/it/technologies/go/domande-colloquio/reflection.md): 20 domande, Senior - [Gestione della memoria](https://sharpskill.dev/it/technologies/go/domande-colloquio/memory-management.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/go/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Generics](https://sharpskill.dev/it/technologies/go/domande-colloquio/generics.md): 20 domande, Senior - [Go Design Patterns](https://sharpskill.dev/it/technologies/go/domande-colloquio/design-patterns.md): 24 domande, Senior - [Microservices](https://sharpskill.dev/it/technologies/go/domande-colloquio/microservices.md): 24 domande, Senior - [Sicurezza e autenticazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/security-authentication.md): 24 domande, Senior - [Kubernetes Basics](https://sharpskill.dev/it/technologies/go/domande-colloquio/kubernetes-basics.md): 22 domande, Senior - [Go Avanzato](https://sharpskill.dev/it/technologies/go/domande-colloquio/advanced-go.md): 20 domande, Senior - [Sviluppo CLI](https://sharpskill.dev/it/technologies/go/domande-colloquio/cli-development.md): 20 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/go/domande-colloquio/docker-containerization