docker - 来自守护进程 : pull access denied for buildcontainer, 存储库的错误响应不存在或可能需要 'docker login'

标签 docker google-cloud-platform yaml google-cloud-build google-cloud-run

dockerfile:

FROM node:10
ADD . /app
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "node", "index.js" ]

cloudbuild.yaml:
steps:
- name: buildcontainer
args: ['build', '-t', 'gcr.io/$PROJECT_ID/coffee2goserver:${SHORT_SHA}', '.']
- name: 'pushcontainer'
args: ["push", "gcr.io/$PROJECT_ID/coffee2goserver"]

错误:

Error response from daemon: pull access denied for buildcontainer, repository does not exist or may require 'docker login'

最佳答案

Google Cloud Build 不提供任何 buildcontainerpushcontainer您可以在构建中使用的图像(除非您自己创建了它们)。

您可以在您的步骤中使用官方 Docker 镜像,如下所示:

steps:
- name: docker
args: ['build', '-t', 'gcr.io/$PROJECT_ID/coffee2goserver:${SHORT_SHA}', '.']
- name: docker
args: ["push", "gcr.io/$PROJECT_ID/coffee2goserver:${SHORT_SHA}"]

Docker 构建步骤会自动设置为您的 Cloud Build Service Account 的凭据。 .这些权限足以直接与 GCR 交互。

此外,正如 David Maze@ 在他的评论中提到的那样,小心地使用与构建时相同的名称推送您的图像,包括 ${SHORT_SHA}在这种情况下。

关于docker - 来自守护进程 : pull access denied for buildcontainer, 存储库的错误响应不存在或可能需要 'docker login',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59851982/

相关文章:

javascript - 如何通过前端应用程序中的 OpenTelemetry 将跟踪数据发送到 Jaeger?

docker - 重启停止的容器并再次执行CMD

jenkins - 为什么在运行从正在运行的 jenkins 容器提交的镜像时作业和系统配置会丢失?

google-cloud-platform - Gsutil cp 不复制文件

Go YAML unmarshal 不会将所有对象结构解码为通用接口(interface)。任何想法为什么?

docker - 无法在 screen 内获取交互式 Docker shell

kubernetes - 在 GCP 上部署 Weaviate k8s 设置时,无法在 API 组中列出资源 "configmaps"

python - 从数据流 (Python) 将嵌套架构写入 BigQuery

yaml - ansible 将额外变量作为嵌套 json 提供

yaml - 如何从yaml中的特定分支获取管道运行数据