首页 > 解决方案 > 使用基于彼此的 Docker 映像的 Google Cloud Build

问题描述

我有两个或多个 Docker 映像,后者基于第一个映像。我想用 Google Cloud Build 构建它们,并有以下多步骤 cloudbuild.yaml:

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/lh-build', './src']

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/lhweb', './src/LHWeb']


images:
  - gcr.io/$PROJECT_ID/lh-build
  - gcr.io/$PROJECT_ID/lhweb

当我运行这个构建配置时,我可以看到以下错误:

步骤 1/6:未找到来自 eu.gcr.io/logistikhelden/lh-build 的 eu.gcr.io/logistikhelden/lh-build 清单

然后我尝试在第一步之后推送图像:

...
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/$PROJECT_ID/lh-build']
...

但是,同样的问题仍然存在。知道这里有什么问题吗?

标签: dockergoogle-kubernetes-enginegoogle-cloud-build

解决方案


您正在将映像推送到 gcr.io,但看起来您的 Dockerfile 在 eu.gcr.io 注册表中指定了一个基本映像。尝试将 Dockerfile 基础映像更改为FROM gcr.io/logistikhelden/lh-build.


推荐阅读