Невозможно получить служебное соединение для Azure Реестра контейнеров в Azure DevOps (Release Pipeline) - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь развернуть контейнер docker в Azure Сервисе приложений из Azure Сервисов DevOps. Я поместил изображение docker в Azure Registry Container. Когда я пытался создать определение выпуска, я не смог найти подключение к службе для Azure Registry Container. Я создал служебное соединение для ACR, но оно не отображается в списке на Azure портале DevOps.

enter image description here

Когда я выбрал 'Azure Container Repository 'как тип источника, подключение службы не отображается в раскрывающемся списке. Я использую DockerHub в качестве другого варианта. Он отображает подключение службы в списке.

Шаги, которые я выполнил, чтобы создать подключение службы для ACR:

  1. Выбрано Docker Реестр из списка .
  2. Выбранный Azure Реестр контейнеров в качестве типа реестра. Предоставил идентификатор подписки и реестр от ACR.
  3. Предоставил имя подключения службы и сохранил.

ОБНОВЛЕНИЕ

Я создал службу соединение для Azure Resource Manager, использующий управляемую идентификацию личности с предоставлением идентификатора подписки и идентификатора клиента. Я пытаюсь использовать это соединение в настройках Артефакта. Я получил следующую ошибку.

Не удалось найти переменную с именем endpoint.serviceprincipalid для данного подключения службы.

enter image description here

Не удается извлечь изображение docker из ACR. Журналы из службы приложений показывают, что доступ к хранилищу запрещен для хранилища.

Проблема с подключением службы решена, но возникла проблема с разрешением docker из службы приложений

2020-02-10 12:31:11.781 INFO  - Pulling image from Docker hub: 
kbdockerregis/kbdockerimage:15

2020-02-10 12:31:14.406 ERROR - DockerApiException: Docker API responded with 
status code=NotFound, response={"message":"pull access denied for 
kbdockerregis/kbdockerimage, repository does not exist or may require 'docker 
login': denied: requested access to the resource is denied"}

2020-02-10 12:31:14.408 ERROR - Image pull failed: Verify docker image 
configuration and credentials (if using private repository)

2020-02-10 12:31:14.412 INFO  - Stoping site kbapp1 because it failed during 
startup.

1 Ответ

1 голос
/ 10 февраля 2020

Когда я выбрал «Azure Container Repository» в качестве типа источника, подключение службы не отображается в раскрывающемся списке.

Для этой первой проблемы это связано с тем, что API, используемый нашей системой, показан ниже, когда вы выбираете ACR в качестве источника выпуска:

https://dev.azure.com/{org}/{project}/_apis/serviceendpoint/endpoints?type=azurerm

Вы можете видеть параметры, к которым прикреплен этот API type=azurerm. Он только выбрал служебное соединение, тип которого Azure Resource Manager. Но Реестр контейнеров к этому не относится.

Итак, вам лучше создать и использовать служебное соединение с типом Azure Resource Manager type.


Не удалось найти переменную с именем endpoint.serviceprincipalid для данного подключения к услуге.

Для этой второй проблемы не получили от вас слишком много информации (например, проверка трассировки кола). Исходя из моих известных, я бы предложил вам изменить тип с Managed Identity Authentication на Service Principal Authentication. Затем следуйте этому do c, чтобы настроить его.

Это более безопасно и может быть авторизовано в первую очередь.

enter image description here

Идентификатор основного клиента службы , это идентификатор приложения после создания приложения в Azure регистрации приложения:

enter image description here

Ключ основной услуги :

enter image description here


Переполнение стека является открытым форумом и небезопасно для обмена некоторой ключевой информацией (особенно Fiddler trace ), которая мне нужна и используется для изучения из бэкэнда. Вам лучше go здесь , потому что вы можете выбрать Microsoft только там. Если возможно, я могу go это сообщество и позволить инженеру этого сообщества показать его мне. Чтобы я мог продолжать копаться в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...