az acr build命令实际构建执行位置及对应机器IP地址查询
az acr build构建任务运行位置说明及IP获取方法 - 你在本地执行
az acr build时,本地命令行工具仅负责将指定的构建上下文(包含Dockerfile、项目代码等文件)上传到目标Azure容器注册表(ACR)实例,实际的镜像构建计算过程完全运行在ACR服务托管的云端计算节点上,不会消耗本地机器的CPU、内存等资源。 - 这类构建节点属于ACR在对应实例所在Azure区域维护的弹性资源池,不是固定绑定的单台服务器,每次执行构建任务时会动态分配空闲节点执行,没有固定不变的宿主机。
获取当前构建任务对应节点IP的方法
- 最直接的方式是在构建过程中主动获取节点出口IP:在你的Dockerfile里临时增加一行执行IP查询的指令,构建时该步骤的输出就会打印在构建日志中,示例片段如下:
执行# 保留你原有的基础镜像声明,例如 FROM node:20-alpine # 临时新增下面这行获取IP,拿到结果后可以删除 RUN wget -qO- ifconfig.me # 后续接你原有的Dockerfile构建逻辑az acr build后,控制台输出的构建日志里,上述RUN步骤的返回值就是本次构建运行节点的公网出口IP。 - 如果你已经跑完了构建任务没提前加指令,可以先执行
az acr task list-runs --registry <你的ACR实例名称> --output table查到对应构建的run-id,再通过az acr task logs --registry <你的ACR实例名称> --run-id <对应run-id>拉取全量构建日志,如果你构建过程中有访问过你可控的公网服务,直接去对应服务的访问日志里查该次请求的来源IP,就是构建节点的IP。
注意:ACR默认托管构建池的节点IP是动态轮换的,没有固定的IP段列表,单次构建拿到的IP不能作为长期白名单配置依据。如果需要构建任务使用固定出口IP,要使用ACR的专用代理池能力,自行配置固定公网出口的代理节点承载构建任务。
内容的提问来源于stack exchange,提问作者romanzdk
相关产品推荐
相关产品推荐

