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 действительно просто , вы просто должны нажать на кнопку Установить:
Примечание: это расширение также доступна для Team Foundation Server, так что вы можете скачать и установить его на своем сервере.
Если вы еще не вошли в систему вам будет предложено ввести учетные данные. После аутентификации, вы должны выбрать учетную запись VSTS, для которой хотите установить расширение:
Нажмите на кнопку подтверждения, и все готово!
Теперь, если вы создаете новые сборки, вы должны увидеть два новых расширения: 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 с помощью команды:
docker-machine ssh machine_name
Вам необходимо установить некоторые пререквизиты для агента 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 и распакуйте архив в папку:
mkdir vsts-agent && cd vsts-agent && tar –zxvf vsts-agent-ubuntu.16.04-x64-2.105.1.tar.gz
На вашей машине Linux, запустите скрипт config.sh в каталоге VSTS-агента:
./config.sh
Следующий шаг настройки, введите свои данные VSTS, и выберете контейнер который вы только что создали, а затем запустить run.sh скрипт для запуска агента.
Перейти в очередь агентов настройках вашего проекта и убедитесь, что ваш агент доступен:
Ваш агент сборки готов!
Используйте расширение 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 вашего доверенного реестра, если вы не используете общедоступны хаб):
После настройки, вернитесь к определению сборки и настройки хоста / реестра на задаче. Другие данные, которые вам нужно предоставить это путь Dockerfile, действие Докер которые вы хотите выполнить (сборка, пуш, запуск …) и контекст, чтобы перейти к демону Докер.
Ниже приведен пример конфигурации задачи Docker для создания образа:
Пример задачи Докер для пуша образа, который был сделан в предыдущем шаге:
Как вы можете видеть, я использовал переменную номер сборки VSTS, чтобы пометить образ.
Сборка сконфигурирована, и может быть запущена в очереди агента, который содержит пользовательский агент.
После того, как сборка будет выполнена, четыре изображения станут доступны в Докер Hub:
Запуск образа супер просто с задачей Докер, вы просто должны выбрать, образ, который вы хотите выполнить:
Примечание: Вы можете также добавить дополнительные параметры , которые будут переданы команде docker run, такие как имя контейнера, конфигурации отображения портов, переменных окружения и аргументов командной строкt.
Удачи с Докер и VSTS!
Нужна помощь в настройке поддержке и сопровождении систем с Docker? [email protected]