Я пытаюсь использовать конвейеры Azure для ci и cd.
1. Образ моего приложения создан и помещен в реестр контейнеров Azure.
2- Конвейер выпуска пытается извлечь образ из ACR, он получает ошибку. Логи из настроек контейнера:
INFO - Pulling image: registryname/repo:latest
ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response = {"message":"Get https://registry-1.docker.io/v2/registryname/repo/manifests/latest: unauthorized: incorrect username or password"}
ERROR - Pulling docker image registryname/repo:latest failed:
INFO - Pulling image from Docker hub: registryname/repo:latest
ERROR - DockerApiException: Docker API responded with status code=NotFound, response = {"message":"pull access denied for registryname/repo, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"}
ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)
INFO - Stopping site appname because it failed during startup.
Ss из конфигурации:
Спасибо за вашу помощь.
Я думаю, что мой реестр контейнеров действителен, и имя образа также правильное. Почему вы решили, что они недействительны?
Поскольку сообщение об ошибке указывает, что
Я проверил учетные данные, но они кажутся правильными, однако, когда я пытаюсь войти в систему из cmd, например, имя реестра для входа в докер, я получаю несанкционированный доступ: требуется аутентификация.
Вам необходимо создать подключение службы из Azure DevOps или использовать cli для аутентификации с помощью acr.
У меня уже есть подключение к службе, azure devops успешно передал образы в acr, но моя проблема заключается в развертывании их в службе приложений.
@dcy Не могли бы вы поделиться некоторыми подробностями о содержимом конвейера сборки и настройках конвейера выпуска? Есть ли вероятность, что ваши теги не совпадают? Пожалуйста, убедитесь, что тег, который вы пытаетесь получить в релизе, является тегом, отправленным в конвейер сборки.
Если вы используете ACR для хранения образа и хотите развернуть содержащиеся в нем образы в Azure Web App, вам необходимо задать имя образа как ACRName.azurecr.io/image:tag, а не только имя и тег образа. И установите переменные среды, например:
DOCKER_REGISTRY_SERVER_USERNAME — имя пользователя для сервера ACR. DOCKER_REGISTRY_SERVER_URL — полный URL-адрес сервера ACR. (Для например, https://my-server.azurecr.io.) DOCKER_REGISTRY_SERVER_PASSWORD — пароль для сервера ACR.
И учетные данные должны иметь достаточно разрешений. Когда все в порядке, логи контейнера будут выглядеть так:
Спасибо за ваш ответ, но переменные среды определены, как вы сказали выше. Вы написали, что у учетных данных должно быть достаточно разрешений. Как я могу это проверить?
@dcy Если вы используете пользователя-администратора и пароль ACR, то у него уже достаточно прав. На самом деле, я думаю, что ваша проблема заключается в использовании неправильного имени изображения.
Спасибо похоже вы правы. Имя моего изображения было неправильным, теперь оно работает.
вам просто нужно передать действительный реестр контейнеров и имя образа