Cloud Build 因超时错误而失败(我正在尝试使用 Prophet 部署 CloudRun)。因此,我试图将 Dockerfile 一分为二(将图像保存在两者之间,以防万一失败)。我会像这样拆分 Dockerfile:
- Dockerfile_one:python + 先知的依赖
- Dockerfile_two:image_from_Dockerfile_one + 先知 + 其他依赖
cloudbuild.yaml 应该是什么样子:
- 如果有以前可用的图像跳过该步骤,否则使用 Dockerfile_one 运行该步骤并保存图像
- 使用步骤 (1) 中的映像,向其添加更多依赖项并保存映像以进行部署
这是 cloudbuild.yaml 现在的样子
steps:
# create gcr source directory
- name: 'bash'
args:
- '-c'
- |
echo 'Creating gcr_source directory for ${_GCR_NAME}'
mkdir _gcr_source
cp -r cloudruns/${_GCR_NAME}/. _gcr_source
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/${_GCR_NAME}', '.']
dir: '_gcr_source'
# Push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/${_GCR_NAME}']
# Deploy container image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: gcloud
args:
- run
- deploy
- ${_GCR_NAME}
- --image=gcr.io/$PROJECT_ID/${_GCR_NAME}
非常感谢!