我按照https://cloud.google.com/container-builder/docs/speeding-up-builds#using_a_cached_docker_image上的说明操作,并且我尝试设置使用从之前版本缓存的图片的docker版本。
这是cloudbuild.yml
的样子:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['pull', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '--cache-from', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker', '.']
timeout: 120m
images: ['gcr.io/$PROJECT_ID/$REPO_NAME:infra_docker']
options:
machineType: 'N1_HIGHCPU_8'
这是Dockerfile
开头的内容:
FROM ubuntu:14.04
SHELL ["/bin/bash", "-c"]
# lots of RUN commands after this
无论我尝试什么,从缓存中提取的docker镜像(作为第一步的结果)都不会用于加速实际的docker构建(第二步)。它总是在我的Dockerfile中运行整个38步!
我做错了什么?
答案 0 :(得分:0)
dockerfile是多阶段的吗? 我遇到了这个问题,其中只有最终的图像可用于缓存。根据您运行的步骤,这看起来好像没有任何步骤在使用缓存。 如果是这种情况,则还需要将中间映像也推送到容器注册表中,并在构建时将其拉出。