TeamCity помогает автоматизировать CI/CD-пайплайн на проектах любого размера и сложности благодаря использованию Docker-контейнеров на всех этапах.
Бывает, что после отладки на локальной машине код не работает в других окружениях. TeamCity позволяет запускать сборку и тесты в Docker: приложение не привязывается к конкретной системе и будет корректно работать в любом окружении — и на машине тестировщика, и в облачном продакшн-инстансе.
TeamCity поможет вам построить масштабируемую CI/CD-инфраструктуру, которой легко управлять. Решение позволяет добавить в команды Docker необходимые параметры сборки, использовать шаблоны для настройки централизованных пайплайнов и автоматизировать очистку билд-агентов и реестров Docker от неактуальных Docker-образов.
TeamCity поможет протестировать, как компоненты приложения взаимодействуют между собой, и выполнить тестирование в разных окружениях: запустит Docker-контейнеры, выполнит интеграционное тестирование и закроет тесты по завершении процесса, обеспечивая при этом высокую надежность и воспроизводимость.
TeamCity поддерживает и позволяет ускорить любые рабочие процессы с использованием Docker. Другие CI/CD-инструменты предлагают только информацию о результатах сборки (успех или ошибка), а TeamCity обеспечивает глубокую интеграцию с Docker и предоставляет подробную информацию о пайплайнах, в том числе:
Благодаря этому вы легко найдете ошибки в сборках, выясните, что нужно исправить, и сможете быстрее предложить пользователям новые функции, при этом обеспечив более высокое качество.
Выберите облачную или локальную версию TeamCity
В облаке JetBrains
Если вам необходимо CI/CD-решение с поддержкой Docker, но вы не хотите запускать его на локальной машине, рекомендуем управляемый сервис TeamCity Cloud.
На вашем оборудовании
Если вы хотите перенести сборки со своей машины в локальный Docker-контейнер, установите TeamCity Professional. Бесплатно для небольших проектов.
Используя билд-раннер Docker, можно добавить к сборке шаги выполнения команд Docker. Это особенно важно, если нужно динамически изменять аргументы Docker: например, запускать сборку в определенной версии операционной системы, которая определена на предыдущих этапах пайплайна. Кроме того, это позволяет TeamCity автоматически очищать локальный кэш Docker-образов на билд-агентах, готовя их к следующим сборкам.
Подробнее — в разделе документации, посвященном билд-раннеру Docker.
Docker-обертка позволяет TeamCity запускать шаги сборки в Docker-контейнере независимо от операционной системы хоста. Это гарантирует точные и воспроизводимые результаты. TeamCity отслеживает все события во время сборки и предоставляет отчеты в реальном времени, анализ тестов и другие возможности, например трассировку стека из Docker-контейнера.
Подробнее — в разделе документации, посвященном Docker-обертке.
Билд-раннер Docker Compose используется для запуска Docker-контейнеров в начале сборки, а также позволяет TeamCity закрыть их после завершения или остановки сборки. Основной сценарий использования билд-раннера — выполнение интеграционных тестов, когда компоненты запускаются в контейнерах, а их выполнение описывается с помощью файлов Docker Compose. Например, сам TeamCity тестируется с различными версиями разных баз данных, используемых в качестве бэкенда, и соответствующие интеграционные тесты запускаются с помощью билд-раннера Docker Compose.
Подробнее — в разделе документации, посвященном билд-раннеру Docker Compose.
Функция Docker Support позволяет управлять реестрами Docker. Если настроить ее на уровне проекта, она обеспечивает поддержку всех популярных сервисов, включая Docker Hub, Amazon ECR, JFrog Container Registry и др. В результате с этими слервисами могут работать разные функции TeamCity. Например, если при очистке сервера будут удалены данные, связанные с устаревшей сборкой, можно настроить одновременное удаление Docker-образов, опубликованных в составе этой сборки.
Подробнее — в разделе документации, посвященном Docker Support.
Предположим, вы создали бэкенд-службу, выполняете ее сборку и запускаете на собственном компьютере. Даже если вы не собираетесь использовать ее за пределами локального окружения, со временем многое может измениться: вы обновите операционную систему, перейдете на другие инструменты сборки и сторонние библиотеки и т. п. Поддерживать неизменное окружение на локальной машине практически невозможно: рано или поздно что-то сломается.
Используя Docker и TeamCity, вы обеспечите воспроизводимость сборок и избавитесь от проблем с управлением зависимостями и устранением ошибок совместимости. CI/CD-пайплайн для Java-проекта с Maven может выглядеть так:
TeamCity предлагает отчеты в реальном времени о сборке и тестировании: с момента коммита в систему контроля версий и до получения результатов. Таким образом, цикл обратной связи сокращается до минимума. TeamCity поддерживает проекты любого размера и сложности, помогает минимизировать количество ошибок, ускорить выпуск новых функций и повысить прозрачность процесса разработки.
Настройка CI/CD-пайплайна не требует обязательного написания кода и выполняется с помощью простого веб-интерфейса. При этом конфигурацию можно настроить и программным способом, используя Kotlin. Это позволит создать удобную в обслуживании воспроизводимую CI-конфигурацию, которая может сочетать различные языки программирования, операционные системы и облачные платформы.
TeamCity может работать с Docker на любой платформе, поддерживающей среду выполнения Docker, в том числе Linux, Windows и macOS.
Да, TeamCity может не только запускать сборки в Docker-контейнерах, но и создавать Docker-образы, передавать их в реестры Docker и удалять их, опираясь на заданные критерии.
Да, на небольших проектах TeamCity On-Premises можно использовать бесплатно, при этом количество пользователей и время сборки не ограничены. Для TeamCity Cloud предусмотрен 14-дневный бесплатный пробный период. Обе версии предлагают полнофункциональную поддержку Docker.
TeamCity может по вашему выбору запускать сборки как на локальной машине, так и в Docker-контейнерах.