# Docker & Containerization (Go) > Dockerfile, multi-stage builds, optymalizacja obrazów, docker-compose, orkiestracja kontenerów - 20 pytań z rozmów - Senior - [Pytania z rozmów: Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne.md) ## 1. Jaki jest główny powód stosowania multi-stage build dla aplikacji Go? **Odpowiedź** Multi-stage build oddziela środowisko kompilacji od finalnego obrazu. Etap budowania zawiera pełny SDK Go (kilkaset MB), podczas gdy finalny obraz zawiera tylko skompilowany plik binarny. To drastycznie zmniejsza rozmiar obrazu (z ~800MB do kilku MB) i minimalizuje powierzchnię ataku, eliminując zbędne narzędzia budowania w produkcji. ## 2. Który obraz bazowy jest zalecany dla aplikacji Go w produkcji, aby zminimalizować rozmiar i powierzchnię ataku? **Odpowiedź** Obraz scratch to pusty obraz bez systemu operacyjnego. Go kompiluje się do statycznych plików binarnych, które nie potrzebują libc ani innych zależności systemowych, co umożliwia użycie scratch. Powstają najmniejsze możliwe obrazy (kilka MB) i zapewnia to najlepsze bezpieczeństwo, ponieważ nie ma żadnych narzędzi ani powłoki możliwych do wykorzystania. Distroless i alpine to prawidłowe, ale mniej optymalne alternatywy. ## 3. Które flagi kompilacji Go są wymagane do utworzenia pliku binarnego kompatybilnego z obrazem scratch? **Odpowiedź** CGO_ENABLED=0 wyłącza cgo, zmuszając Go do używania implementacji pure Go dla pakietów takich jak net i os/user. Bez tego plik binarny miałby dynamiczne zależności od libc. GOOS i GOARCH określają platformę docelową. Te połączone flagi tworzą w pełni statyczny plik binarny bez zewnętrznych zależności, idealny dla scratch. ## Jeszcze 17 dostępnych pytań - Jak zoptymalizować buforowanie warstw Docker podczas budowania aplikacji Go? - Jaka jest zaleta używania obrazów Google Distroless dla Go w porównaniu ze scratch? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Go - [Podstawy Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-basics.md): 25 pytań, Junior - [Struktury danych w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-data-structures.md): 20 pytań, Junior - [Interfejsy w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-interfaces.md): 18 pytań, Junior - [Obsługa błędów](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/error-handling.md): 20 pytań, Junior - [Podstawy goroutines](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/goroutines-basics.md): 20 pytań, Junior - [Channels](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/channels.md): 22 pytań, Junior - [Go Modules](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-modules.md): 18 pytań, Mid-Level - [Serwer HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-server.md): 24 pytań, Mid-Level - [Klient HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-client.md): 18 pytań, Mid-Level - [Kodowanie JSON](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/json-encoding.md): 20 pytań, Mid-Level - [Database/SQL](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/database-sql.md): 22 pytań, Mid-Level - [Pakiet context](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/context-package.md): 20 pytań, Mid-Level - [Testing](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/testing.md): 22 pytań, Mid-Level - [Wzorce współbieżności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/concurrency-patterns.md): 24 pytań, Mid-Level - [Prymitywy synchronizacji](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/sync-primitives.md): 22 pytań, Mid-Level - [Frameworki webowe Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-web-frameworks.md): 20 pytań, Mid-Level - [Projektowanie API REST](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/rest-api-design.md): 20 pytań, Mid-Level - [gRPC](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/grpc.md): 22 pytań, Mid-Level - [Reflection](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/reflection.md): 20 pytań, Senior - [Zarządzanie pamięcią](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/memory-management.md): 24 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/performance-optimization.md): 22 pytań, Senior - [Generics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/generics.md): 20 pytań, Senior - [Go Design Patterns](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/design-patterns.md): 24 pytań, Senior - [Microservices](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/microservices.md): 24 pytań, Senior - [Bezpieczeństwo i uwierzytelnianie](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/security-authentication.md): 24 pytań, Senior - [Kubernetes Basics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/kubernetes-basics.md): 22 pytań, Senior - [Zaawansowany Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/advanced-go.md): 20 pytań, Senior - [Tworzenie CLI](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/cli-development.md): 20 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/docker-containerization