docker - 来自守护程序的错误响应:构建容器的拉取访问被拒绝,存储库不存在或可能需要“docker login”
问题描述
码头文件:
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"]
错误:
来自守护程序的错误响应:构建容器的拉取访问被拒绝,存储库不存在或可能需要“docker login”
解决方案
Google Cloud Build 不提供您可以在构建中使用的任何buildcontainer
图像pushcontainer
(除非您自己创建了它们)。
您可以在您的步骤中使用官方 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}
在这种情况下。
推荐阅读
- android - Ionic cordova - 在 Android Studio 中构建项目
- c# - 使用依赖注入替换 ASP.NET Core 中的 JWT Bearer Options
- python - 修改 Keras LSTM 损失函数
- mysql - mysql -- ERROR 1064 (42000): .... near '(PARTITION BY t1.DIGEST)
- javascript - 如何使用 NodeJS 和 Nginx 托管和管理文件上传?
- angularjs - 如何在 ng-if 条件下使用变量?
- php - PHP 联系表单重定向
- swift - 直接使用或在字符串插值中使用时返回不同值的字符串属性
- java - 我怎样才能找到 print 调用的位置?
- laravel - 在视图中找不到“照片”类