Pytania rekrutacyjne z Dockera i CI/CD (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu Docker i CI/CD (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Jaka jest główna zaleta budowania wieloetapowego (multi-stage)?
- 2.Dlaczego ten Dockerfile przeinstalowuje wszystkie zależności przy każdej zmianie kodu?
``
dockerfile COPY . . RUN npm ci - 3.Po co łączyć
apt-get updateiapt-get installw jednymRUN? - 4.Dlaczego
RUN rm -rf /tmp/buildw późniejszej warstwie nie zmniejsza obrazu? - 5.Czym różnią się
CMD ["node", "server.js"]iCMD node server.js? - 6.Dlaczego proces działający jako PID 1 w kontenerze może zachowywać się dziwnie?
- 7.Co powinien zrobić serwer Node.js po otrzymaniu SIGTERM?
- 8.Dlaczego
CMD ["npm", "start"]odradza się w obrazach produkcyjnych? - 9.Po
USER nodeaplikacja nie może pisać do/app. Jaka jest typowa poprawka? - 10.Jak użyć tokenu npm podczas budowania, nie zostawiając go w obrazie?
- 11.Co daje
RUN --mount=type=cache,target=/root/.npm npm ci? - 12.Co BuildKit robi z niezależnymi etapami budowania multi-stage?
- 13.Czym digest obrazu różni się od tagu?
- 14.Czym są obrazy
<none>:<none>(wiszące)? - 15.Do czego służy
compose.override.yaml? - 16.Do czego służą profile Compose?
- 17.Montujesz projekt przez bind mount w kontenerze Node i aplikacja nie znajduje modułów. Dlaczego?
- 18.Czym w Compose różnią się plik
.envienv_file:? - 19.Kontener zatrzymał się z kodem wyjścia 137. Jaka jest prawdopodobna przyczyna?
- 20.Dlaczego Node.js może zignorować limit pamięci kontenera i zostać zabity przez OOM?
- 21.Co robi
--network host? - 22.Dlaczego kontenery powinny logować na stdout i stderr?
- 23.Co chroni przed zapełnieniem dysku przez domyślne logi Dockera
json-file? - 24.Co daje uruchomienie z
--read-only? - 25.Czym jest obraz distroless?
- 26.Po co instalować w końcowym obrazie tylko zależności produkcyjne?
- 27.Co sprawdza skaner obrazów taki jak Trivy?
- 28.Dlaczego montowanie
/var/run/docker.sockw kontenerze jest ryzykowne? - 29.Obraz zbudowany na Macu z Apple Silicon pada na serwerze x86 z
exec format error. Dlaczego? - 30.Co robi
exec "$@"na końcu skryptu entrypoint? - 31.Czy Kubernetes używa
HEALTHCHECKz Dockerfile? - 32.Jaki jest dobry klucz cache dla
node_moduleslub cache npm w CI? - 33.Cache a artefakty w CI: na czym polega różnica?
- 34.Co robi ten kod?
``
yaml concurrency: group: deploy-${{ github.ref }} cancel-in-progress: true - 35.Jak w monorepo nie uruchamiać pipeline'u backendu, gdy zmienił się tylko frontend?
- 36.Do czego służy
workflow_dispatch? - 37.Po co jawnie ustawiać
permissions:dlaGITHUB_TOKEN? - 38.Dlaczego workflow uruchamiane przez
pull_requestz forków nie dostają sekretów repozytorium? - 39.Co dodają środowiska wdrożeń z wymaganymi recenzentami?
- 40.Czym jest reusable workflow?
- 41.Czym jest composite action?
- 42.Po co przypinać zewnętrzne akcje do pełnego SHA commita zamiast
@v3? - 43.Co daje OIDC pipeline'owi CI, który wdraża do chmury?
- 44.Jak jeden job przekazuje wartość, np. tag obrazu, innemu?
- 45.Jak uruchomić step wdrożenia tylko dla pushy do
main? - 46.Co zmienia
fail-fast: falsew macierzy? - 47.Dlaczego runnery self-hosted są ryzykowne dla publicznych repozytoriów?
- 48.Dlaczego budowanie obrazów na świeżych runnerach CI bywa wolne i co pomaga?
- 49.Po co tagować obrazy SHA commita?
- 50.Jak przyspieszyć wolny pipeline bez rezygnacji z kontroli?
- 51.Jak testy integracyjne w GitHub Actions mogą dostać prawdziwego PostgreSQL?
- 52.Co robi Testcontainers?
- 53.Dlaczego migracje bazy powinny zachować zgodność wsteczną podczas wdrożenia?
- 54.Czym jest wydanie canary?
- 55.Co robi rolling update?
- 56.Jak feature flagi zmieniają relację między wdrożeniem a wydaniem?
- 57.Do czego służą smoke testy po wdrożeniu?
- 58.Jakie są klasyczne metryki DORA?
- 59.Co mierzy „lead time for changes”?
- 60.Dlaczego CI i długo żyjące gałęzie funkcji sobie przeszkadzają?
- 61.Czym jest infrastructure as code?
- 62.Na czym polega główna idea GitOps?
- 63.Sonda readiness a liveness w Kubernetesie: na czym polega różnica?
- 64.Dlaczego zwykle tworzy się Deployment, a nie Pody bezpośrednio?
- 65.Czy Secrets w Kubernetesie są domyślnie szyfrowane?
- 66.Requests a limits zasobów w Kubernetesie: co robią?
- 67.Co kontrolują
maxSurgeimaxUnavailable? - 68.Co robią Dependabot lub Renovate?
- 69.Dlaczego nie nadpisywać istniejącego tagu obrazu, np.
1.4.0? - 70.Co zmienia
needs:w jobie GitLab CI? - 71.CI maskuje wartości sekretów w logach. Dlaczego sekret wciąż może wyciec?
- 72.Dlaczego każde wdrożenie produkcyjne powinno iść przez pipeline, a nie przez ręczny
docker pushz laptopa? - 73.W czym pomaga
docker history my-app? - 74.Co wypisuje
docker compose config? - 75.Co
restore-keysdodaje do kroku cache?