我在 ADO 中设置了管道,用于构建、容器化应用程序、推送到 acr,然后部署到 k8s。这工作正常,但我想使用 jib 而不是单独的任务并利用分层节省的优势。
我一直在努力让它发挥作用。最初的管道是这样的:
- task: Docker@2
displayName: Build container
inputs:
enabled: true
command: build
repository: repo
Dockerfile: Dockerfile
buildContent: /
tags: latest
# Push container
- task: Docker@2
displayName: Publish container
inputs:
enabled: true
command: push
repository: repo
containerRegistry: acr-login-private
Dockerfile: Dockerfile
buildContent: /
tags: latest
登录详细信息由链接到包含所有详细信息的服务连接的 containerRegistry 设置管理。
我想将其替换为:
- task: Maven@4
inputs:
mavenPOMFile: "pom.xml"
jdkVersionOption: 21
goals: "-B clean deploy jib:build"
但显然会返回某种身份验证问题,因为我无法指定登录凭据:
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, visit https://aka.ms/acr/authorization for more information."}]}
现在感觉自己很蠢。我只需要一个 Docker 登录任务:
- task: Docker@2
inputs:
containerRegistry: 'acr-login-private'
command: 'login'