gpt4 book ai didi

Azure ACR 任务 API?有一个在 docker 容器中运行的应用程序需要构建镜像并将其推送到 ACR

转载 作者:行者123 更新时间:2023-12-03 05:25:14 26 4
gpt4 key购买 nike

应用程序使用 docker CLI 构建镜像,然后将镜像推送到 azure 容器注册表。过去使用 python 模块和 docker.sock 在 Kubernetes 上运行良好。但自从集群升级后,docker daemon 就消失了。猜测 K8 后端不再使用 docker 或者已经安装了它。另外,由于 docker 正在 kubernetes 中消失(我认为它说的是 1.24,所以我不想依赖 docker 进行构建。

所以工作时的应用程序是在 docker 容器中运行的 python 应用程序。它将获取 dockerfile 并构建它,并将其推送到 azure 容器注册表。有些文件通过 dockerfile 推送到镜像中,它们都与 dockerfile 存在于同一目录中。

有人知道实现这一目标的不同方法吗?

我一直在研究 Azure ACR 任务,但我不太确定如何将所有文件复制到任务中,并且无法找到任何示例。

最佳答案

我可以确认,运行 Azure ACR 任务(多任务或快速任务)将在执行命令时复制文件。我们正在使用Azure ACR Quick Tasks来实现类似的目标。如果您只是尝试执行 docker builddocker Push 的等效操作,快速任务也应该适合您。

为了简单起见,我将列出快速任务的示例,因为这是我最常用的。在本地计算机上尝试执行以下步骤,看看它是如何工作的。只要机器经过正确身份验证,相同的步骤也应该适用于任何其他环境。

首先确保您位于 Dockerfile 目录中,然后:

  1. 使用 az login 对 Azure CLI 进行身份验证
  2. 使用 az acr login --name myacr 对您的 ACR 进行身份验证。
  3. 相应地替换值并运行 az acr build --registry myacr -g myacr_rg --image myacr.azurecr.io/myimage:v1.0 。
  4. 您的终端应该已经显示 Dockerfile 正在执行的所有步骤。或者,您可以转到 ACR 并在 services>tasks>runs 下查看。您应该会看到 Docker 构建任务的每一行都出现在那里。

注意:如果您以自动方式运行此任务,并且在镜像构建期间还需要访问内部/私有(private)资源,则应考虑创建 Dedicated Agent Pool并将其部署在您的 VNET/SNET 中,而不是使用共享/公共(public)代理池。

就我而言,我使用 terraform 运行 az acr build 命令,您可以看到 Dockerfile 执行 COPY 命令,没有任何问题。

enter image description here

关于Azure ACR 任务 API?有一个在 docker 容器中运行的应用程序需要构建镜像并将其推送到 ACR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69430576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com