当前位置: 首页 > 知识库问答 >
问题:

无法在 Azure 开发运营(发布管道)中获取 Azure 容器注册表的服务连接

顾琛
2023-03-14

我正在尝试从Azure运营模式服务在Azure应用服务上部署docker容器。我已将docker映像推送到Azure容器注册表。当我尝试创建发布定义时,我找不到Azure容器注册表的服务连接。我已经为ACR创建了服务连接,但它没有显示在Azure运营模式门户的列表中。

当我选择“Azure 容器存储库”作为源类型时,服务连接在下拉框中不可见。我正在使用多克枢纽作为另一种选择。它在列表中显示服务连接。

我为ACR创建服务连接的步骤如下:

  1. 从列表中选择Docker注册表。
  2. 选择Azure容器注册表作为注册表类型。从ACR提供订阅ID和注册表。
  3. 提供服务连接名称并保存。

更新

我通过提供订阅id和租户id,使用托管身份认证为Azure资源管理器创建了服务连接。我正在尝试在神器设置中使用这种连接。我得到了以下错误。

找不到给定服务连接的名称endpoint.serviceprincipalid变量。

它无法从ACR中提取docker图像。App服务的日志显示存储库的拉取访问被拒绝。

服务连接问题已解决,但面临来自应用程序服务的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个答案

赵镜
2023-03-14

当我选择“Azure容器存储库”作为源类型时,服务连接在下拉框中不可见。

对于第一个问题,这是因为当您选择ACR作为发布源时,我们的系统使用的api如下所示:

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

可以看到这个api附加的参数是< code>type=azurerm。它仅获取类型为< code>Azure资源管理器的服务连接。但是容器注册不属于此。

因此,您最好创建并使用类型为< code>Azure资源管理器类型的服务连接。

找不到给定服务连接的名称endpoint.serviceprincipalid变量。

对于第二个问题,没有从您那里得到太多信息(例如检查股权跟踪)。因此,根据我的已知情况,我建议您将类型从托管身份身份验证更改为服务主体身份验证。然后按照此文档进行配置。

这样更安全,可以先授权。

服务主体客户端id,它是您在Azure应用注册中创建应用后的应用id:

服务主体密钥:

堆栈溢出是一个开放的论坛,分享一些我需要并用于从后端调查的关键信息(尤其是Fiddler跟踪)并不安全。你最好去这里,因为你可以在那里选择Microsoft Only。如果可能的话,我可以去那个社区,让那个社区的工程师给我看。这样我就可以继续挖掘它。

 类似资料:
  • 我有一个非常奇怪(我想很容易解决)的问题:)我试图在Azure中有一个工作的CI/CD管道。为此,我在Azure devops中创建了一个存储库,并创建了构建和发布管道。我将docker图像发布到Azure容器注册表,在发布期间,我将拉出这个图像(或者至少--我正在尝试,因为它不起作用),并试图将它发布到Webapp for Containers上。在我的例子中,“应用程序”是。NET Core3

  • 这是一个ASP。生成时没有错误的NET Core 3.0项目,但当它触发管道以发布到Azure App Service时,它失败,并出现以下错误: 2019-11-10t 23:09:23.8008460 z # #[错误]错误:未找到指定模式:D的包:\a\r1\a***。活力 需要做什么来修复发布管道?管道版本将最新的构建作为它的工件。

  • 当您选择此选项时,将生成 yaml 文件,如下所示: 在此 yaml 文件中,您可以定义从还原开始的整个部署周期

  • 我试图在Azure devops中创建一个发布管道来部署api。 当我试图授权部署阶段时,会出现以下错误。没有任何真正有助于解决的信息。任何建议都很感激。我是订阅的所有者。

  • 我需要一个计数器,每次发布时,每个阶段都会上升。在构建管道中有计数器支持(https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=vsts 一种解决方法是从发布名称中解析出发布号,并将其用作计数器。但是解析字符串很难看,它只在每个新版本中递增,而不是在每个特定阶段递增(例如,我希望“dev”和“p

  • 我正在尝试在Azure DevOps(内部部署)中配置发布管道以支持git流策略。我正在努力实现的目标: promise“发布/*”触发软件的构建并发布到QA的位置 promise“主控”从步骤1获取相同的软件构建(工件),并发布到生产位置 因此,当我做一个git-flow开始发布时,软件可用于测试/质量保证,当我完成发布时,它可供用户使用。 我的构建管道工作正常,它由发布分支触发,并以发布工件任