Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнеры предоставляют новые уровни виртуализации путем изоляции зависимостей приложений и разработчиков от инфраструктуры и операционных требований. Осталось решить, как управляется и обновляется эта виртуализация приложений в течение жизненного цикла контейнера.
Задачи реестра контейнеров Azure — это набор функций, которые:
- Предоставление облачного образа контейнера для таких платформ , как Linux, Windows и ARM.
- Расширьте ранние части цикла разработки приложений в облако с помощью сборок образов контейнера по запросу.
- Включите автоматические сборки, активированные обновлениями исходного кода, обновлениями базового образа контейнера или таймерами.
Например, с триггерами обновления базового образа можно автоматизировать исправление ОС и платформы для контейнеров Docker. Эти триггеры помогают поддерживать безопасные среды при соблюдении принципов неизменяемых контейнеров.
Внимание
Запуск задач в Реестре контейнеров Azure временно приостановлен из-за использования бесплатных кредитов Azure. Эта пауза может повлиять на существующие запуски задач. Если у вас возникли проблемы, откройте запрос на поддержку, чтобы наша команда могла предоставить дополнительные рекомендации.
Предупреждение
Обратите внимание, что любая информация, указанная в командной строке или в составе URI, может быть зарегистрирована в процессе диагностики, проводимой в Azure Container Registry (ACR). К ним относятся конфиденциальные данные, такие как учетные данные, GitHub личные маркеры доступа и другие безопасные сведения. Соблюдайте осторожность, чтобы предотвратить потенциальные риски безопасности, важно избежать включения конфиденциальных сведений в командные строки или URI, которые подвергаются ведения журналам диагностики.
Сценарии задач
Задачи реестра контейнеров Azure обеспечивают множество сценариев создания и сопровождения образов контейнеров и других артефактов. В этой статье описываются быстрые задачи, автоматически активированные задачи и многофакторные задачи.
Каждая задача имеет связанный контекст исходного кода, который является расположением исходных файлов, используемых для создания образа контейнера или другого артефакта. Примеры контекстов включают репозиторий Git и локальную файловую систему.
Задачи также могут воспользоваться переменными запуска, поэтому можно повторно использовать определения задач и стандартизировать теги для образов и артефактов.
Быстрые задачи
Цикл разработки на внутреннем цикле — это итеративный процесс написания кода, сборки и тестирования приложения перед фиксацией в системе контроля версий. Это действительно начало управления жизненным циклом контейнеров.
Функция быстрой задачи в задачах реестра контейнеров Azure может обеспечить интегрированный опыт разработки, позволяя переносить сборки образов контейнеров в Azure. Вы можете создать и отправить один образ контейнера в реестр контейнеров по запросу в Azure, не требуя локальной установки подсистемы Docker. Выполняйте docker build
и docker push
в облаке. С помощью задач быстрого выполнения вы можете проверить определения автоматизированной сборки и выявить потенциальные проблемы перед внесением изменений в код.
Используя знакомый docker build
формат, команда az acr build в Azure CLI принимает в качестве аргумента контекст. Затем команда отправляет контекст в Реестр контейнеров Azure и (по умолчанию) отправляет созданный образ в реестр после завершения.
Задачи реестра контейнеров Azure предназначены как основной элемент жизненного цикла контейнера. Например, можно интегрировать задачи реестра контейнеров Azure в решение для непрерывной интеграции и непрерывной доставки (CI/CD). Если вы запускаете az login с сервисным принципалом, то ваше решение CI/CD затем может выдавать команды az acr build для начала сборки образов.
Чтобы узнать, как использовать быстрые задачи, см. краткое руководство и учебник по созданию и развертыванию образов контейнеров с помощью задач Azure Container Registry.
Совет
Если требуется создать и передать образ непосредственно из исходного кода, без Dockerfile, то Реестр контейнеров Azure предоставляет команду az acr pack build (предварительный просмотр). Это средство создает и отправляет образ из исходного кода приложения с помощью Cloud Native Buildpacks.
Автоматически активированные задачи
Включите один или несколько триггеров для создания образа.
Активация задачи при обновлении исходного кода
Вы можете запустить сборку образа контейнера или задачу с несколькими шагами при фиксации кода или когда пулл-реквест создан или обновлён в общедоступном или частном репозитории Git на GitHub или Azure DevOps. Например, настройте задачу сборки с помощью команды Azure CLI az acr task create, указав репозиторий Git и, при необходимости, ветвь и файл Dockerfile. Когда команда обновляет код в репозитории, веб-перехватчик, созданный в задачах Реестра контейнеров Azure, активирует сборку образа контейнера в репозитории.
Задачи реестра контейнеров Azure поддерживают следующие триггеры при настройке репозитория Git в качестве контекста задачи:
Триггер | Включено по умолчанию |
---|---|
Закоммитить | Да |
Пулл-реквест | Нет |
Примечание.
В настоящее время задачи Реестра контейнеров Azure не поддерживают триггеры фиксации или pull-запросов в репозиториях GitHub Enterprise.
Сведения о том, как активировать сборки на основе фиксаций исходного кода, см. в статье Автоматизация сборок образов контейнеров при помощи задач реестра контейнеров Azure.
Личный маркер доступа
Чтобы настроить триггер для обновлений исходного кода, необходимо предоставить задаче токен личного доступа для установки вебхука в общедоступном или частном репозитории GitHub или Azure DevOps. Обязательные области применения для личного токена доступа следующие:
Тип репозитория | GitHub | Azure DevOps |
---|---|---|
Общедоступный репозиторий | статус репозитория публичный репозиторий |
Чтение кода |
Частный репозиторий | repo (полный доступ) | Код (чтение) |
Сведения о создании личного маркера доступа см. в документации по GitHub или Azure DevOps .
Автоматизация установки исправлений ОС и платформы
Возможности Azure Container Registry по улучшению рабочего процесса сборки контейнеров основаны на их способности обнаруживать обновление в базовом образе. Базовый образ — это функция большинства образов контейнеров. Это родительский образ, на котором основаны один или несколько образов приложений. Базовые образы обычно содержат операционную систему и иногда платформы приложений.
Вы можете настроить задачу Azure Container Registry для отслеживания зависимости от базового образа при сборке образа приложения. Когда обновленный базовый образ отправляется в реестр, или базовый образ обновляется в общедоступном репозитории, например в Docker Hub, задачи Реестра контейнеров Azure могут автоматически создавать любые образы приложений на его основе. При этом автоматическое обнаружение и перестроение задачи реестра контейнеров Azure позволяют сэкономить время и усилия, которые обычно требуются для ручного отслеживания и обновления каждого образа приложения, ссылающегося на ваш обновленный базовый образ.
Дополнительные сведения см. в статьях Об обновлениях базового образа для задач реестра контейнеров Azure и Учебное пособие: автоматизация сборок контейнерных образов при обновлении базового образа в реестре контейнеров Azure.
Планирование задачи
Вы можете запланировать задачу, настроив один или несколько триггеров таймера при создании или обновлении задачи. Планирование задачи полезно при выполнении рабочих нагрузок контейнера по определенному расписанию или при выполнении операций обслуживания или тестирования образов, которые регулярно помещаются в реестр. Дополнительные сведения см. в разделе "Запуск задачи Реестр контейнеров Azure в определенном расписании".
Многошаговые задачи
Расширьте возможности сборки и отправки изображений для задач реестра контейнеров Azure с помощью многошаговых рабочих процессов с использованием нескольких контейнеров.
Функция Многошаговые задачи обеспечивает определение и выполнение задач на основе шага для создания, тестирования и исправления изображений контейнера в облаке. Шаги задач, определенные в файле YAML, указывают отдельные операции сборки и отправки для образов контейнеров или других артефактов. Они также могут определять выполнение одного или нескольких контейнеров, причем каждый шаг использует контейнер в качестве среды выполнения.
Например, можно создать многофакторную задачу, которая автоматизирует следующие действия:
- Создание образа веб-приложения.
- Запустите контейнер веб-приложения.
- Создание тестового образа веб-приложения.
- Запустите контейнер тестов веб-приложения, который выполняет тесты с запущенным контейнером приложения.
- Если тесты проходят, создайте архивный пакет диаграмм Helm.
-
helm upgrade
Выполните задачу с помощью нового пакета архива диаграмм Helm.
Многофакторные задачи позволяют разделить сборку, выполнение и тестирование образа на более составные шаги с поддержкой зависимостей между шагами. При использовании многошаговых задач в реестре контейнеров Azure у вас есть более детальный контроль над рабочими процессами для создания образов, тестирования и патча ОС и фреймворков.
Расположения контекста
В следующей таблице показаны примеры поддерживаемых расположений контекста для задач Реестр контейнеров Azure:
Расположение контекста | Описание | Пример |
---|---|---|
Локальная файловая система | Файлы в каталоге в локальной файловой системе. | /home/user/projects/myapp |
Главная ветвь GitHub | Файлы в основной (или другой по умолчанию) ветви в общедоступном или частном репозитории GitHub. | https://github.com/gituser/myapp-repo.git |
Ветвь GitHub | Конкретная ветвь общедоступного или частного репозитория GitHub. | https://github.com/gituser/myapp-repo.git#mybranch |
Подпапка GitHub | Файлы во вложенной папке в общедоступном или частном репозитории GitHub. В примере показано сочетание спецификации ветви и подпапки. | https://github.com/gituser/myapp-repo.git#mybranch:myfolder |
Коммит на GitHub | Конкретный коммит в общедоступном или частном репозитории GitHub. В примере показана комбинация хэша фиксации (SHA) и спецификации вложенных папок. | https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder |
Вложенная папка DevOps для Azure | Файлы во вложенной папке в общедоступном или частном репозитории Azure. В примере показана комбинация спецификации ветвей и вложенных папок. | https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder |
Удаленный архив Tarball | Файлы в сжатом архиве на удаленном веб-сервере. | http://remoteserver/myapp.tar.gz |
Артефакт в реестре контейнеров | Файлы артефактов OCI в репозитории реестра контейнеров. | oci://myregistry.azurecr.io/myartifact:mytag |
Примечание.
При использовании репозитория Git в качестве контекста для задачи, которая активируется обновлением исходного кода, необходимо предоставить личный маркер доступа.
Платформы образов
По умолчанию, задачи Реестра контейнеров Azure создают образы для ОС Linux и архитектуры AMD64. Укажите тег --platform
для создания образов Windows или Linux для других архитектур. Укажите ОС и при необходимости поддерживаемую архитектуру в формате ОС или архитектуры (например, --platform Linux/arm
). Для архитектур ARM при необходимости укажите вариант в формате ОС или архитектуры или варианта (например, --platform Linux/arm64/v8
).
ОС | Архитектура |
---|---|
Linux | AMD64 ARM ARM64 386 |
Windows | AMD64 |
Выходные данные задачи
При каждом выполнении задачи формируются выходные данные журнала, которые можно проверить, чтобы определить, успешно ли выполнены шаги задачи. При запуске задачи вручную выходные данные журнала для выполнения задачи передаются в консоль и хранятся для последующего извлечения. Если задача активируется автоматически (например, фиксацией исходного кода или обновлением базового образа), журналы задач хранятся только. Просмотрите журналы выполнения на портале Microsoft Azure или используйте команду az acr task logs.
Дополнительные сведения о просмотре журналов задач и управлении ими.
Связанный контент
Когда вы будете готовы автоматизировать сборку и обслуживание образов контейнеров в облаке, смотрите руководство по созданию и развертыванию образов контейнеров в облаке с задачами реестра контейнеров Azure.
Необязательно ознакомьтесь с расширением Docker и расширением учетной записи Azure для Visual Studio Code. Эти расширения можно использовать для извлечения образов из реестра контейнеров, отправки образов в реестр контейнеров или выполнения задач в Azure Container Registry, всё это в Visual Studio Code.