# Docker & Containerization (Go) > Dockerfile, multi-stage builds, image-optimalisatie, docker-compose, container-orkestratie - 20 gespreksvragen - Senior - [Gespreksvragen: Go](https://sharpskill.dev/nl/technologies/go/sollicitatievragen.md) ## 1. Wat is de belangrijkste reden om een multi-stage build te gebruiken voor een Go-applicatie? **Antwoord** De multi-stage build scheidt de compilatieomgeving van het uiteindelijke image. De build-stage bevat de volledige Go SDK (enkele honderden MB), terwijl het uiteindelijke image alleen de gecompileerde binary bevat. Dit verkleint de image-grootte drastisch (van ~800MB naar enkele MB) en minimaliseert het aanvalsoppervlak door onnodige build-tools in productie te verwijderen. ## 2. Welk base image wordt aanbevolen voor een Go-applicatie in productie om de grootte en het aanvalsoppervlak te minimaliseren? **Antwoord** Het scratch-image is een leeg image zonder besturingssysteem. Go compileert naar statische binaries die geen libc of andere systeemafhankelijkheden nodig hebben, waardoor scratch bruikbaar is. Dit levert de kleinst mogelijke images op (enkele MB) en biedt de beste beveiliging omdat er geen exploiteerbare tools of shell zijn. Distroless en alpine zijn geldige maar minder optimale alternatieven. ## 3. Welke Go-compilatieflags zijn vereist om een binary te maken die compatibel is met een scratch-image? **Antwoord** CGO_ENABLED=0 schakelt cgo uit en dwingt Go om pure Go-implementaties te gebruiken voor packages zoals net en os/user. Zonder dit zou de binary dynamische afhankelijkheden van libc hebben. GOOS en GOARCH specificeren het doelplatform. Deze gecombineerde flags produceren een volledig statische binary zonder externe afhankelijkheden, ideaal voor scratch. ## Nog 17 vragen beschikbaar - Hoe optimaliseer je Docker-layercaching bij het bouwen van een Go-applicatie? - Wat is het voordeel van het gebruik van Google Distroless-images voor Go in vergelijking met scratch? Meld je gratis aan: https://sharpskill.dev/nl/login ## Andere Go-sollicitatieonderwerpen - [Go-basis](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/go-basics.md): 25 vragen, Junior - [Go-datastructuren](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/go-data-structures.md): 20 vragen, Junior - [Go-interfaces](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/go-interfaces.md): 18 vragen, Junior - [Foutafhandeling](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/error-handling.md): 20 vragen, Junior - [Goroutines-basis](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/goroutines-basics.md): 20 vragen, Junior - [Channels](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/channels.md): 22 vragen, Junior - [Go Modules](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/go-modules.md): 18 vragen, Mid-Level - [HTTP-server](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/http-server.md): 24 vragen, Mid-Level - [HTTP-client](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/http-client.md): 18 vragen, Mid-Level - [JSON-codering](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/json-encoding.md): 20 vragen, Mid-Level - [Database/SQL](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/database-sql.md): 22 vragen, Mid-Level - [context-pakket](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/context-package.md): 20 vragen, Mid-Level - [Testing](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/testing.md): 22 vragen, Mid-Level - [Concurrency-patronen](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/concurrency-patterns.md): 24 vragen, Mid-Level - [Synchronisatieprimitieven](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/sync-primitives.md): 22 vragen, Mid-Level - [Go-webframeworks](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/go-web-frameworks.md): 20 vragen, Mid-Level - [REST API-ontwerp](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/rest-api-design.md): 20 vragen, Mid-Level - [gRPC](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/grpc.md): 22 vragen, Mid-Level - [Reflection](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/reflection.md): 20 vragen, Senior - [Geheugenbeheer](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/memory-management.md): 24 vragen, Senior - [Prestatie-optimalisatie](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/performance-optimization.md): 22 vragen, Senior - [Generics](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/generics.md): 20 vragen, Senior - [Go Design Patterns](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/design-patterns.md): 24 vragen, Senior - [Microservices](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/microservices.md): 24 vragen, Senior - [Beveiliging en authenticatie](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/security-authentication.md): 24 vragen, Senior - [Kubernetes Basics](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/kubernetes-basics.md): 22 vragen, Senior - [Geavanceerd Go](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/advanced-go.md): 20 vragen, Senior - [CLI-ontwikkeling](https://sharpskill.dev/nl/technologies/go/sollicitatievragen/cli-development.md): 20 vragen, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/nl/technologies/go/sollicitatievragen/docker-containerization