Создание и отправка образов контейнеров в реестры с помощью Azure Pipelines
Статья
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
В этой статье описано, как настроить и настроить azure Pipelines для создания и отправки образа Docker в Реестр контейнеров Azure, Docker Hub и Реестр артефактов Google. Кроме того, он подробно описывает использование безопасной System.AccessToken проверки подлинности в конвейере.
В этой статье описаны инструкции по настройке и настройке azure Pipelines для создания и отправки образа Docker в Центр Docker и Реестр артефактов Google. Кроме того, он подробно описывает использование безопасной System.AccessToken проверки подлинности в конвейере.
Вы узнаете, как создать конвейер YAML для сборки и отправки образа Docker в реестр контейнеров. Задача Docker@2 используется для сборки и отправки образа в реестр контейнеров.
Необходимые компоненты
Проект Azure DevOps.
Реестр контейнеров (Docker Hub, Реестр артефактов Google или Реестр контейнеров Azure).
Репозиторий GitHub с Dockerfile. Если у вас нет этого репозитория, вы можете использовать пример репозитория в браузере, перейдите к примеру репозитория, а затем введите его в учетную запись GitHub.
Docker (Далее: Docker). При использовании локального агента убедитесь, что Docker установлен и подсистема Docker работает с повышенными привилегиями. Размещенные корпорацией Майкрософт агенты предустановили Docker.
Проект Azure DevOps.
Реестр контейнеров (Docker Hub или Реестр артефактов Google).
Репозиторий GitHub с Dockerfile. Если у вас нет этого репозитория, вы можете использовать пример репозитория в браузере, перейдите к примеру репозитория, а затем введите его в учетную запись GitHub.
Docker (Далее: Docker). При использовании локального агента убедитесь, что Docker установлен и подсистема Docker работает с повышенными привилегиями. Размещенные корпорацией Майкрософт агенты предустановили Docker.
Создание подключения службы Docker
Перед отправкой образов контейнеров в реестр необходимо создать подключение к службе в Azure DevOps. Это подключение службы сохраняет учетные данные, необходимые для безопасной проверки подлинности в реестре контейнеров. Перейдите на страницу подключений к службе в проекте Azure DevOps, чтобы создать новое подключение к службе и выберите тип подключения Реестра Docker.
Существуют различные процессы для создания подключения к службе для Центра Docker и реестра артефактов Google.
Выберите параметр Docker Hub в разделе Подключение службы реестра Docker и укажите имя пользователя и пароль для создания подключения к службе Docker.
Выберите параметр Реестр контейнеров Azure в разделе подключение службы реестра Docker и укажите сведения, необходимые выбранному методу проверки подлинности.
Отправка образа Docker в Реестр контейнеров Azure не поддерживается в Azure DevOps Server.
Чтобы создать подключение службы Docker, связанное с Реестром артефактов Google, выполните следующие действия.
Откройте проект в консоли Google Cloud Platform (GCP), а затем откройте Cloud Shell
Чтобы сэкономить время ввода идентификатора проекта и зоны вычислительной подсистемы, задайте значения конфигурации по умолчанию, выполнив следующие команды:
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
Замените [PROJECT_NAME] именем проекта GCP и замените [ZONE] именем зоны, которую вы собираетесь использовать для создания ресурсов. Если вы не уверены, какую зону выбрать, используйте us-central1-a. Например:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
Задача Docker@2 предназначена для упрощения процесса создания, отправки и управления образами Docker в Azure Pipelines. Эта задача поддерживает широкий спектр команд Docker, включая сборку, отправку, вход, выход, запуск, остановку и запуск.
Ниже описано, как создать конвейер YAML, использующий задачу Docker@2 для сборки и отправки образа.
Перейдите к проекту Azure DevOps и выберите Pipelines в меню слева.
Выберите новый конвейер , чтобы создать новый конвейер.
Выберите GitHub или GitHub Enterprise Server в качестве расположения исходного кода.
Если вы еще не сделали этого, авторизуйте Azure Pipelines для подключения к учетной записи GitHub Enterprise Server.
Выберите "Подключиться к GitHub Enterprise Server".
Введите сведения о учетной записи, а затем нажмите кнопку "Проверить и сохранить".
Выберите репозиторий.
Если вы перенаправлены на GitHub
Выберите шаблон конвейера Starter, чтобы создать базовую конфигурацию конвейера.
Замените содержимое azure-pipelines.yml следующим кодом.
В зависимости от того, развертываете ли вы приложение Linux или Windows, убедитесь в том, что для vmImage вас установлено значение ubuntu-latest или windows-latest. Если вы используете автономный агент, задайте vmImage имя пула, содержащего автономный агент с возможностями Docker. Вы можете добавить свойство, чтобы убедиться, demands: docker что выбран агент с установленным Docker.
Замените <docker connection> именем созданного ранее подключения службы Docker.
Замените <target repository name> именем репозитория в реестре контейнеров, где нужно отправить образ. Например, <your-docker-hub-username>/<repository-name>.
По завершении нажмите кнопку "Сохранить и запустить".
При сохранении файла azure-pipelines.yml в репозитории появится запрос на добавление сообщения фиксации. Введите сообщение, а затем нажмите кнопку "Сохранить и запустить".
При использовании локальных агентов убедитесь, что Docker установлен на узле агента, а подсистема Или управляющая программа Docker работает с повышенными привилегиями.
Чтобы создать образ, Docker необходимо установить на узле агента, а подсистема и управляющая программа Docker должны работать с повышенными привилегиями. Выполните следующие действия, чтобы создать конвейер с помощью редактора конвейера YAML.
Перейдите в коллекцию и создайте проект.
В проекте выберите "Конвейеры".
Выберите Создать конвейер.
Выберите GitHub Enterprise Server в качестве расположения исходного кода.
Если вы еще не сделали этого, авторизуйте Azure Pipelines для подключения к учетной записи GitHub Enterprise Server.
Выберите "Подключиться к GitHub Enterprise Server".
Введите сведения о учетной записи, а затем нажмите кнопку "Проверить и сохранить".
Выберите репозиторий.
Если вы перенаправляетесь на GitHub, чтобы установить приложение Azure Pipelines, выберите " Утвердить и установить".
Чтобы настроить конвейер, выберите шаблон образа Docker.
В редакторе конвейера YAML замените содержимое ФАЙЛА YAML следующим кодом. Замените имя пула именем пула, содержащего локальный агент с возможностью Docker.
В зависимости от того, развертываете ли вы приложение Linux или Windows, убедитесь в том, что для vmImage вас установлено значение ubuntu-latest или windows-latest.
Замените <target repository name> именем репозитория в реестре контейнеров, где нужно отправить образ. Например, <your-docker-hub-username>/<repository-name>.
Замените <docker connection> именем созданного ранее подключения службы Docker.
Задача Docker@2 используется для сборки и отправки образа в реестр контейнеров.
Задача Docker@2 предназначена для упрощения процесса создания, отправки и управления образами Docker в Azure Pipelines. Эта задача поддерживает широкий спектр команд Docker, включая сборку, отправку, вход, выход, запуск, остановку и запуск.
Ниже описано, как создать конвейер YAML, использующий задачу Docker@2 для сборки и отправки образа.
Перейдите к проекту Azure DevOps и выберите Pipelines в меню слева.
Выберите новый конвейер , чтобы создать новый конвейер.
Выберите GitHub или GitHub Enterprise Server в качестве расположения исходного кода.
Если вы еще не сделали этого, авторизуйте Azure Pipelines для подключения к учетной записи GitHub Enterprise Server.
Выберите "Подключиться к GitHub Enterprise Server".
Введите сведения о учетной записи, а затем нажмите кнопку "Проверить и сохранить".
Выберите репозиторий.
Выберите шаблон конвейера Starter, чтобы создать базовую конфигурацию конвейера.
Замените содержимое azure-pipelines.yml следующим кодом.
В зависимости от того, развертываете ли вы приложение Linux или Windows, убедитесь в том, что для vmImage вас установлено значение ubuntu-latest или windows-latest. Если вы используете автономный агент, задайте vmImage имя пула, содержащего автономный агент с возможностями Docker. Вы можете добавить свойство, чтобы убедиться, demands: docker что выбран агент с установленным Docker.
Замените <docker connection> именем созданного ранее подключения службы Docker.
Замените <target repository name> именем репозитория в реестре контейнеров, где нужно отправить образ. Например, myregistry.azurecr.io/myimage.
По завершении нажмите кнопку "Сохранить и запустить".
При сохранении файла azure-pipelines.yml в репозитории появится запрос на добавление сообщения фиксации. Введите сообщение, а затем нажмите кнопку "Сохранить и запустить".
При использовании локальных агентов убедитесь, что Docker установлен на узле агента, а подсистема Или управляющая программа Docker работает с повышенными привилегиями.
Отправка образа docker в Реестр контейнеров Azure не поддерживается в Azure DevOps Server.
Задача Docker@2 предназначена для упрощения процесса создания, отправки и управления образами Docker в Azure Pipelines. Эта задача поддерживает широкий спектр команд Docker, включая сборку, отправку, вход, выход, запуск, остановку и запуск.
Ниже описано, как создать конвейер YAML, использующий задачу Docker@2 для сборки и отправки образа.
Перейдите к проекту Azure DevOps и выберите Pipelines в меню слева.
Выберите новый конвейер , чтобы создать новый конвейер.
Выберите GitHub или GitHub Enterprise Server в качестве расположения исходного кода.
Если вы еще не сделали этого, авторизуйте Azure Pipelines для подключения к учетной записи GitHub Enterprise Server.
Выберите "Подключиться к GitHub Enterprise Server".
Введите сведения о учетной записи, а затем нажмите кнопку "Проверить и сохранить".
Выберите репозиторий.
Выберите шаблон конвейера Starter, чтобы создать базовую конфигурацию конвейера.
Замените содержимое azure-pipelines.yml следующим кодом.
В зависимости от того, развертываете ли вы приложение Linux или Windows, убедитесь в том, что для vmImage вас установлено значение ubuntu-latest или windows-latest. Если вы используете автономный агент, задайте vmImage имя пула, содержащего автономный агент с возможностями Docker. Вы можете добавить свойство, чтобы убедиться, demands: docker что выбран агент с установленным Docker.
Замените <docker connection> именем созданного ранее подключения службы Docker.
Замените <target repository name> именем репозитория в реестре контейнеров, где нужно отправить образ. Например, <your-project-id>/<your-image-name>.
По завершении нажмите кнопку "Сохранить и запустить".
При сохранении файла azure-pipelines.yml в репозитории появится запрос на добавление сообщения фиксации. Введите сообщение, а затем нажмите кнопку "Сохранить и запустить".
При использовании локальных агентов убедитесь, что Docker установлен на узле агента, а подсистема Или управляющая программа Docker работает с повышенными привилегиями.
Чтобы создать образ, Docker необходимо установить на узле агента, а подсистема и управляющая программа Docker должны работать с повышенными привилегиями. Выполните следующие действия, чтобы создать конвейер с помощью редактора конвейера YAML.
Перейдите в коллекцию и создайте проект.
В проекте выберите "Конвейеры".
Выберите Создать конвейер.
Выберите GitHub Enterprise Server в качестве расположения исходного кода.
Если вы еще не сделали этого, авторизуйте Azure Pipelines для подключения к учетной записи GitHub Enterprise Server.
Выберите "Подключиться к GitHub Enterprise Server".
Введите сведения о учетной записи, а затем нажмите кнопку "Проверить и сохранить".
Выберите репозиторий.
Чтобы настроить конвейер, выберите шаблон образа Docker.
В редакторе конвейера YAML замените содержимое ФАЙЛА YAML следующим кодом. Замените имя пула именем пула, содержащего локальный агент с возможностью Docker.
В зависимости от того, развертываете ли вы приложение Linux или Windows, убедитесь в том, что для vmImage вас установлено значение ubuntu-latest или windows-latest.
Замените <target repository name> именем репозитория в реестре контейнеров, где нужно отправить образ. Например, <your-project-id>/<your-image-name>.
Замените <docker connection> именем созданного ранее подключения службы Docker.
На странице "Сохранить и запустить" нажмите кнопку "Сохранить и снова запустить".
Вы можете наблюдать за запуском конвейера и просматривать журналы, чтобы увидеть, что образ Docker создается и отправляется в реестр контейнеров.
Использование System.AccessToken для проверки подлинности в задаче Docker@2
Вы можете пройти проверку подлинности с помощью реестра контейнеров, предоставленного System.AccessToken Azure DevOps. Этот маркер обеспечивает безопасный доступ к ресурсам в конвейере без предоставления конфиденциальных учетных данных.
В следующем примере конвейера YAML задача Docker@2 используется для входа в реестр контейнеров и отправки образа Docker. Он System.AccessToken устанавливается в качестве переменной среды для проверки подлинности команд Docker.
Замените <docker connection> именем подключения службы реестра Docker.
Замените <your repository> именем репозитория Docker.