Питання на співбесіді з Docker і CI/CD (Middle) з відповідями

75 запитань для співбесіди з теми Docker і CI/CD (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Яка головна перевага багатоетапного (multi-stage) збирання?
  2. 2.Чому цей Dockerfile перевстановлює всі залежності при кожній зміні коду? ``dockerfile COPY . . RUN npm ci
  3. 3.Навіщо об'єднувати apt-get update і apt-get install в одному RUN?
  4. 4.Чому RUN rm -rf /tmp/build у пізнішому шарі не зменшує образ?
  5. 5.Чим відрізняються CMD ["node", "server.js"] і CMD node server.js?
  6. 6.Чому процес, що працює як PID 1 у контейнері, може поводитися дивно?
  7. 7.Що має зробити сервер на Node.js, отримавши SIGTERM?
  8. 8.Чому CMD ["npm", "start"] не радять у продакшн-образах?
  9. 9.Після USER node застосунок не може писати в /app. Яке типове виправлення?
  10. 10.Як використати npm-токен під час збирання, не лишивши його в образі?
  11. 11.Що дає RUN --mount=type=cache,target=/root/.npm npm ci?
  12. 12.Що BuildKit робить із незалежними етапами multi-stage збирання?
  13. 13.Чим digest образу відрізняється від тегу?
  14. 14.Що таке образи <none>:<none> (висячі)?
  15. 15.Для чого compose.override.yaml?
  16. 16.Для чого потрібні профілі Compose?
  17. 17.Ви монтуєте проєкт через bind mount у контейнер Node, і застосунок не знаходить модулі. Чому?
  18. 18.Чим у Compose відрізняються файл .env і env_file:?
  19. 19.Контейнер зупинився з кодом виходу 137. Яка ймовірна причина?
  20. 20.Чому Node.js може ігнорувати ліміт пам'яті контейнера й бути вбитим OOM?
  21. 21.Що робить --network host?
  22. 22.Чому контейнери мають писати логи в stdout і stderr?
  23. 23.Що не дає типовим логам Docker json-file заповнити диск?
  24. 24.Що дає запуск з --read-only?
  25. 25.Що таке distroless-образ?
  26. 26.Навіщо ставити у фінальний образ лише продакшн-залежності?
  27. 27.Що перевіряє сканер образів на кшталт Trivy?
  28. 28.Чому монтувати /var/run/docker.sock у контейнер ризиковано?
  29. 29.Образ, зібраний на Mac з Apple Silicon, падає на x86-сервері з exec format error. Чому?
  30. 30.Що робить exec "$@" наприкінці entrypoint-скрипту?
  31. 31.Чи використовує Kubernetes HEALTHCHECK з Dockerfile?
  32. 32.Який ключ кешу добрий для node_modules чи кешу npm у CI?
  33. 33.Кеш проти артефактів у CI: у чому різниця?
  34. 34.Що робить цей код? ``yaml concurrency: group: deploy-${{ github.ref }} cancel-in-progress: true
  35. 35.Як у монорепо не запускати пайплайн backend, коли змінився лише frontend?
  36. 36.Для чого workflow_dispatch?
  37. 37.Навіщо явно задавати permissions: для GITHUB_TOKEN?
  38. 38.Чому workflow, запущені pull_request з форків, не отримують секретів репозиторію?
  39. 39.Що додають оточення розгортання з обов'язковими рев'юерами?
  40. 40.Що таке reusable workflow?
  41. 41.Що таке composite action?
  42. 42.Навіщо закріплювати сторонні actions на повний SHA коміту, а не на @v3?
  43. 43.Що дає OIDC пайплайну CI, який розгортає в хмару?
  44. 44.Як один job передає значення, наприклад тег образу, іншому?
  45. 45.Як запускати step розгортання лише для push у main?
  46. 46.Що змінює fail-fast: false у матриці?
  47. 47.Чому self-hosted runner ризиковані для публічних репозиторіїв?
  48. 48.Чому збирання Docker на свіжих CI-runner часто повільні й що допомагає?
  49. 49.Навіщо тегувати образи SHA коміту?
  50. 50.Як пришвидшити повільний пайплайн, не прибираючи перевірок?
  51. 51.Як інтеграційні тести в GitHub Actions можуть отримати справжній PostgreSQL?
  52. 52.Що робить Testcontainers?
  53. 53.Чому міграції бази мають лишатися зворотно сумісними під час деплою?
  54. 54.Що таке canary-реліз?
  55. 55.Що робить rolling update?
  56. 56.Як feature flags змінюють зв'язок між деплоєм і релізом?
  57. 57.Для чого smoke-тести після деплою?
  58. 58.Які класичні метрики DORA?
  59. 59.Що вимірює «lead time for changes»?
  60. 60.Чому CI і довгоживучі гілки фіч заважають одне одному?
  61. 61.Що таке infrastructure as code?
  62. 62.У чому основна ідея GitOps?
  63. 63.Readiness чи liveness проба в Kubernetes: у чому різниця?
  64. 64.Чому зазвичай створюють Deployment, а не Pod напряму?
  65. 65.Чи зашифровані Secrets у Kubernetes за замовчуванням?
  66. 66.Requests і limits ресурсів у Kubernetes: що вони роблять?
  67. 67.Що контролюють maxSurge і maxUnavailable?
  68. 68.Що роблять Dependabot чи Renovate?
  69. 69.Чому не варто перезаписувати наявний тег образу на кшталт 1.4.0?
  70. 70.Що змінює needs: у job GitLab CI?
  71. 71.CI маскує значення секретів у логах. Чому секрет все одно може витекти?
  72. 72.Чому кожен продакшн-деплой має йти через пайплайн, а не ручним docker push з ноутбука?
  73. 73.Що допомагає знайти docker history my-app?
  74. 74.Що друкує docker compose config?
  75. 75.Що restore-keys додає кроку кешу?