Visual Studio Team Services (VSTS) является отличным инструментом для обработки вашей сборки и выпуска релизов, даже для приложений Windows. В этом посте я подробно расскажу, как вы можете использовать расширение Docker для VSTS что бы создавать, деплоить и запускать Docker образы на Linux. Задачей создания и настройки Docker образов должен заниматься DevOps инженер.

Установка расширения Docker

Как вы, возможно, уже знаете, Visual Studio Team Services поставляется с Marketplace, где вы можете обнаружить, некоторые задачи и расширения для вашей сборки и выпуска. Расчирение для Docker доступно здесь:https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.docker

Добавление расширений к VSTS действительно просто , вы просто должны нажать на кнопку Установить:

установка расширения docker

Примечание: это расширение также доступна для Team Foundation Server, так что вы можете скачать и установить его на своем сервере.

Если вы еще не вошли в систему вам будет предложено ввести учетные данные. После аутентификации, вы должны выбрать учетную запись VSTS, для которой хотите установить расширение:

docker wondows

Нажмите на кнопку подтверждения, и все готово!

Теперь, если вы создаете новые сборки, вы должны увидеть два новых расширения: Docker Docker Compose

докер установка

Чтобы использовать расширение, вам нужно настроить две внешних службы в VSTS:

  • Docker host, который будет использоваться для построения, пуша, запуска образов
  • Docker Hub/Registry для хранения образа

Создание и настройка агента сборки Linux

Visual Studio Team Services поддерживает агенты сборки ( предоставляемые Microsoft и работающие под управлением Windows) и пользовательские агенты, которые могут запускаться на Windows, Linux или Mac OS. Любая машина,  которая у вас есть, физическая или виртуальная, может быть агентом VSTS.

Я выбираю , создать машину Ubuntu в Microsoft Azure с помощью командной строки docker-machine. Этот инструмент очень прост в использовании и позволяет запусть Docker хост в течение нескольких минут!

После этого, вы можете подключиться по ssh с помощью команды:

Вам необходимо установить некоторые пререквизиты для агента VSTS Linux, как описано здесь: https://github.com/Microsoft/vsts-agent/blob/master/docs/start/envubuntu.md

Теперь вы можете скачать агент со страницы выпуска GitHub, в зависимости от версии Ubuntu например (14.04 или 16.04): https://github.com/Microsoft/vsts-agent/releases

После загрузки, создайте новую папку на компьютере, например, vsts-agent и распакуйте архив в папку:

На вашей машине Linux, запустите скрипт config.sh в каталоге VSTS-агента:

Следующий шаг настройки, введите свои данные VSTS,  и выберете контейнер который вы только что создали, а затем запустить run.sh скрипт для запуска агента.

Перейти в очередь агентов настройках вашего проекта и убедитесь, что ваш агент доступен:

настройка docker

Ваш агент сборки готов!

Используйте расширение Docker в VSTS

Я работаю над приложением мульти-контейнеров и я использую расширение Docker для создания и пуша 4 образов из репозитория исходного кода, который содержит один Dockerfile для каждого образа. Во-первых, я создал новое определение сборки (запускается из пустого), связано определение сборки в моим репозиторием исходного кода и настроил его, чтобы запускаться каждый раз, когда выполняется коммит.

Затем я добавил задачу Docker к определению сборки (Мне нужно создавать и пушить каждый образ):

работа с докер

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

Нажмите на ссылку Управление , чтобы перейти к управлению Services. В этом разделе вы можете добавить информацию, чтобы соединить Docker host и ваш Docker Hub:

докер контейнер

Для Docker host , вам нужно присвоить имя, URL-адрес хоста и информацию о сертификате для подключения к демону Докер (эти сертификаты были сгенерированы docker-machine  в вашей домашней папке):

контейнер докер

Docker Registry требует вашего Trusted Registry / Docker Hub информацию об учетной записи (и URL вашего доверенного реестра, если вы не используете общедоступны хаб):

image_thumb410

После настройки, вернитесь к определению сборки и настройки хоста / реестра на задаче. Другие данные, которые вам нужно предоставить это путь Dockerfile, действие Докер которые вы хотите выполнить (сборка, пуш, запуск …) и контекст, чтобы перейти к демону Докер.

Ниже приведен пример конфигурации задачи Docker для создания образа:

doker образ

Пример задачи Докер для пуша образа, который был сделан в предыдущем шаге:

image_thumb412

Как вы можете видеть, я использовал переменную номер сборки VSTS, чтобы пометить образ.

Сборка сконфигурирована, и может быть запущена в очереди агента, который содержит пользовательский агент.

image_thumb413

После того, как сборка будет выполнена, четыре изображения станут доступны в Докер Hub:

image_thumb414

Запуск образа супер просто с задачей Докер, вы просто должны выбрать, образ, который вы хотите выполнить:

запуск docker

Примечание: Вы можете также добавить дополнительные параметры , которые будут переданы команде docker run, такие как имя контейнера, конфигурации отображения портов, переменных окружения и аргументов командной строкt.

Удачи с Докер и VSTS!

Нужна помощь в настройке поддержке и сопровождении систем с Docker? [email protected]