Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интерфейс командной строки разработчика Azure (azd) поддерживает внешние сторонние реестры контейнеров для развертывания. Чтобы использовать эту возможность, перед вызовом команды azd deploy необходимо вручную выполнить аутентификацию во внешнем реестре контейнеров.
Аутентификация с использованием Docker требуется только тогда, когда azd выполняет за вас операции с образами, такие как загрузка, сборка, добавление тегов или отправка образов. Если служба настроена с использованием services.<name>.docker.imagePassthrough: true, azd повторно использует указанный удалённый образ без изменений. В этом случае azd не требуется Docker или Podman и не выполняет никаких действий по проверке подлинности реестра или жизненному циклу образов для этой службы.
Проверка подлинности
Запустите docker login и выполните проверку подлинности во внешнем реестре контейнеров. Вам может потребоваться выполнить дополнительные действия по установке или настройке для конкретного поставщика реестра.
docker login <your-registry>
Пример сценариев
Вы можете настроить azd для отправки и извлечения образов из внешнего реестра контейнеров в файле azure.yaml шаблона. Поддержка дополнительных реестров контейнеров обеспечивает большую гибкость для рабочих процессов развертывания.
Извлечение из внешнего реестра контейнеров
В этом примере во время azd развертывания контейнер извлекается из docker.io/username/nginx:latest, и служба контейнерных приложений ссылается на него напрямую.
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: docker.io/<username>/nginx:latest
host: containerapp
Примечание.
Конфигурация инфраструктуры Container Apps должна включать учетные данные для получения образов из закрытых реестров контейнеров.
Чтобы развернуть удаленный образ, не требуя Docker или Podman, задайте services.<name>.docker.imagePassthrough: true и укажите полный образ, включая реестр, в services.<name>.image:
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: docker.io/<username>/nginx:latest
host: containerapp
docker:
imagePassthrough: true
imagePassthrough имеет следующие ограничения:
- Требуется задать
services.<name>.image. - Его нельзя сочетать с
docker.remoteBuild. - Эта служба не поддерживает флаги переопределения образа
azd publish,--from-packageи--to.
Извлечь, пометить тегом и отправить во внешний реестр
Рассмотрим файл со следующей azure.yaml конфигурацией:
# azure.yaml
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: nginx
host: containerapp
docker:
registry: docker.io/<username>
image: nginx
tag: latest
Команда azd deploy извлекает настроенный образ nginx. В этом случае это общедоступный образ в центре docker, поэтому azd перетагирует контейнер или образ и отправляет его в реестр Docker.
Сборка, тег и отправка во внешний реестр в azd deploy
Рассмотрим файл со следующей azure.yaml конфигурацией:
# azure.yaml
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
api:
project: ./src/api
host: containerapp
docker:
registry: docker.io/<username>
image: todo-api
Команда azd deploy создает контейнер, тегирует его и отправляет его в реестр Docker.