Непрерывная интеграция с помощью Docker

Непрерывная интеграция (CI) — это часть процесса разработки, когда вы стремитесь добиться слияния ваших изменений кода с основной ветвью проекта. На этом этапе команды разработчиков проводят тесты и сборки, чтобы убедиться, что изменения кода не вызывают нежелательного или неожиданного поведения.

Git branches about to get merged

Есть несколько вариантов использования Docker на этом этапе разработки, даже если вы не собираетесь упаковывать свое приложение в образ контейнера.

Docker как среда сборки

Контейнеры — это воспроизводимые, изолированные среды, которые дают предсказуемые результаты. Сборка и тестирование приложения в контейнере Docker облегчает предотвращение непредвиденного поведения. Используя Dockerfile, вы определяете точные требования к среде сборки, включая время выполнения программ, операционную систему, двоичные файлы и многое другое.

Использование Docker для управления средой сборки также облегчает обслуживание. Например, обновление до новой версии среды выполнения программ может быть таким же простым, как изменение тега или дайджеста в Docker-файле. Нет необходимости подключаться по SSH к домашней виртуальной машине, чтобы вручную переустановить новую версию и обновить соответствующие конфигурационные файлы.

Кроме того, как вы ожидаете, что сторонние пакеты с открытым исходным кодом будут безопасными, то же самое должно быть и с вашей средой сборки. Вы можете сканировать и индексировать образ сборки, как и любое другое контейнерное приложение.

Следующие ссылки содержат инструкции о том, как начать использовать Docker для создания приложений в CI:

Docker в Docker

Вы также можете использовать Dockerized среду сборки для создания образов контейнеров с помощью Docker. Т. е. ваша среда сборки запускается внутри контейнера, который сам по себе оборудован для запуска сборок Docker. Данный метод называется «Docker в Docker».

Docker предоставляет официальный Docker-образ, который вы можете использовать для этой цели.

Что дальше

Docker поддерживает множество официальных GitHub Actions, которые вы можете использовать для создания, аннотирования и отправки образов контейнеров на платформу GitHub Actions. Смотрите Введение в GitHubActions, чтобы узнать больше и начать работу.