守护进程返回错误响应: 拉取buildcontainer被拒绝,仓库不存在或可能需要进行'docker login'操作。

4

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"]

错误:

从守护程序返回的错误响应:拉取 buildcontainer 失败,存储库不存在或可能需要进行 'docker login'。


我认为Dockerfile没有任何问题。相反,尝试在调用docker build之前添加一个docker login步骤。 - Anuradha Fernando
你正在构建和推送不同的名称;push命令需要包括${SHORT_SHA} - David Maze
1个回答

2
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服务帐号。这些权限足以直接与GCR交互。
此外,正如David Maze在他的评论中提到的那样,请注意使用相同名称推送映像,包括在本例中的${SHORT_SHA}

我正在执行 python manage.py migrate 命令,但是出现了以下错误。 - Aseem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接