Создание и отправка образов контейнеров в реестры с помощью Azure Pipelines
Azure DevOps Services
В этой статье описывается создание конвейера для создания и отправки образа Docker в реестр контейнеров Azure или Центр Docker.
Необходимые компоненты
продукт | требования |
---|---|
Azure DevOps | - Проект Azure DevOps. Разрешения: - — Чтобы предоставить доступ ко всем конвейерам в проекте: необходимо быть членом группы администраторов проектов. — Для создания подключений к службам необходимо иметь роль администратора или создателя для подключений служб. — Если вы используете локальный агент, убедитесь, что Docker установлен, и подсистема Docker работает с повышенными привилегиями. Размещенные корпорацией Майкрософт агенты предустановили Docker. |
GitHub | — учетная запись GitHub. — репозиторий GitHub с Dockerfile. Используйте пример репозитория, если у вас нет собственного проекта. — подключение службы GitHub |
Azure | — подписка Azure. — реестр контейнеров Azure. |
продукт | требования |
---|---|
Azure DevOps | - Проект Azure DevOps. Разрешения: - — Чтобы предоставить доступ ко всем конвейерам в проекте: необходимо быть членом группы администраторов проектов. — Для создания подключений к службам необходимо иметь роль администратора или создателя для подключений служб. — Если вы используете локальный агент, убедитесь, что Docker установлен, и подсистема Docker работает с повышенными привилегиями. Размещенные корпорацией Майкрософт агенты предустановили Docker. |
GitHub | — учетная запись GitHub. — репозиторий GitHub с Dockerfile. Используйте пример репозитория, если у вас нет собственного проекта. — подключение службы GitHub |
Концентратор Docker | — учетная запись Docker Hub. — репозиторий образов Docker Hub. |
Создание подключения службы реестра Docker
Перед отправкой образов контейнеров в реестр необходимо создать подключение к службе в Azure DevOps. Это подключение службы сохраняет учетные данные, необходимые для безопасной проверки подлинности в реестре контейнеров. Для получения дополнительной информации см. подключения к службе реестра Docker.
В проекте Azure DevOps выберите параметры проекта >подключения службы.
Выберите Новое подключение службы и Регистратор Docker.
Выберите Docker Hub и введите следующие сведения:
Поле Описание Идентификатор Docker Введите идентификатор Docker. Пароль Docker Введите пароль Docker. имя подключения службы Введите название подключения к службе. предоставить разрешение на доступ ко всем конвейерам Выберите этот параметр, чтобы предоставить доступ ко всем конвейерам. Выберите Проверить и сохранить.
Создание конвейера для сборки и отправки образа Docker
Задача Docker@2 используется для сборки и отправки образа в реестр контейнеров. Задача Docker@2 предназначена для упрощения процесса создания, отправки и управления образами Docker в Azure Pipelines. Эта задача поддерживает широкий спектр команд Docker, включая сборку, отправку, вход, выход, запуск, остановку и запуск.
Выполните следующие действия, чтобы создать конвейер YAML, использующий задачу Docker@2 для сборки и отправки образа.
В проекте Azure DevOps выберите Pipelines и Новый конвейер.
Выберите GitHub в качестве расположения исходного кода и выберите репозиторий.
- Если вы перенаправлены на GitHub для входа, введите учетные данные GitHub.
- Если вы перенаправляетесь на GitHub, чтобы установить приложение Azure Pipelines, выберите " Утвердить и установить".
Выберите репозиторий.
Выберите шаблон конвейера Starter, чтобы создать базовую конфигурацию конвейера.
Замените содержимое azure-pipelines.yml следующим кодом:
trigger: - main pool: vmImage: 'ubuntu-latest' variables: repositoryName: '<target repository name>' steps: - task: Docker@2 inputs: containerRegistry: '<docker registry service connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
Измените файл YAML конвейера следующим образом:
- Замените
<target repository name>
именем репозитория в реестре контейнеров, где нужно отправить образ. - Замените
<docker registry service connection>
именем созданного ранее подключения службы реестра Docker.
- Замените
По завершении выберите Сохранить и запустить>Сохранить и запустить.
Выберите задание, чтобы просмотреть журналы и проверить успешное выполнение конвейера.
Перейдите в проект Azure DevOps и выберите Pipelines в меню слева.
Выберите Создать конвейер.
Выберите GitHub в качестве расположения исходного кода и выберите репозиторий.
- Если вы перенаправлены на GitHub для входа, введите учетные данные GitHub.
- Если вы перенаправляетесь на GitHub, чтобы установить приложение Azure Pipelines, выберите " Утвердить и установить".
Выберите шаблон Docker - создание и отправка образа в реестр контейнеров Azure.
Выберите подписку Azure и Продолжить.
Выберите реестр контейнеров, а затем выберите Проверить и настроить.
Пример конвейера YAML:
# Docker # Build and push an image to Azure Container Registry # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '7f9dc28e-5551-43ee-891f-33bf61a995de' imageRepository: 'usernamepipelinesjavascriptdocker' containerRegistry: 'repoistoryname.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build pool: vmImage: $(vmImageName) steps: - task: Docker@2 displayName: Build and push an image to container registry inputs: command: buildAndPush repository: $(imageRepository) dockerfile: $(dockerfilePath) containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag)
Выберите Сохранить и запустить и Сохранить и снова запустить.
Выберите задание, чтобы просмотреть журналы и проверить успешное выполнение конвейера.
Шаблон Docker создает подключение службы к реестру контейнеров Azure и использует задачу Docker@2 для сборки и отправки образа Docker в реестр.
Задача Docker@2 предназначена для упрощения процесса создания, отправки и управления образами Docker в Azure Pipelines. Эта задача поддерживает широкий спектр команд Docker, включая сборку, отправку, вход, выход, запуск, остановку и запуск.
При использовании локальных агентов убедитесь, что Docker установлен на узле агента, а подсистема Или управляющая программа Docker работает с повышенными привилегиями.