无法让--cache-from工作

时间:2018-02-20 09:40:42

标签: docker google-cloud-platform google-kubernetes-engine

我按照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步!

我做错了什么?

1 个答案:

答案 0 :(得分:0)

dockerfile是多阶段的吗? 我遇到了这个问题,其中只有最终的图像可用于缓存。根据您运行的步骤,这看起来好像没有任何步骤在使用缓存。 如果是这种情况,则还需要将中间映像也推送到容器注册表中,并在构建时将其拉出。