CodeBuild Docker缓存在每个复制命令上都无效

CodeBuild Docker缓存在每个复制命令上都无效,docker,caching,docker-compose,aws-codebuild,Docker,Caching,Docker Compose,Aws Codebuild,我试图在CodeBuild上的实例之间共享docker缓存,以节省每次构建时运行pip安装、npm安装等的时间。为了做到这一点,我一直在提取项目最近构建的docker映像,并在docker-compose.yml的cache_from字段中指定它。在最初的几个步骤中,它成功地命中缓存,但在通过Pipfile和Pipfile.lock进行复制期间/之后,每次都无法命中缓存。即使我每隔几秒钟运行它,当它们很明显没有改变时。最糟糕的是,使用docker 20+在本地运行时,它会根据需要完美地缓存它们!

我试图在CodeBuild上的实例之间共享docker缓存,以节省每次构建时运行pip安装、npm安装等的时间。为了做到这一点,我一直在提取项目最近构建的docker映像,并在docker-compose.yml的cache_from字段中指定它。在最初的几个步骤中,它成功地命中缓存,但在通过Pipfile和Pipfile.lock进行复制期间/之后,每次都无法命中缓存。即使我每隔几秒钟运行它,当它们很明显没有改变时。最糟糕的是,使用docker 20+在本地运行时,它会根据需要完美地缓存它们!我不确定这是否只是docker 19(这是AFAICT提供的最新代码构建)的一个bug,或者是否有其他一些我不知道的逻辑

Dockerfile大致如下所示:

FROM ...amazonaws.com/python:3.7.8-alpine3.12

# Create app directory
ENV WORKDIR="/usr/src/app"
RUN mkdir -p $WORKDIR
WORKDIR $WORKDIR

RUN wget -O /usr/local/bin/sops https://github.com/mozilla/sops/releases/download/3.0.5/sops-3.0.5.linux \
    && chmod 755 /usr/local/bin/sops

COPY Pipfile Pipfile.lock ./

etc.
docker-compose.yml包含以下内容:

services:
  api:
    container_name: api
    build:
      context: server
      cache_from:
        - ...amazonaws.com/python:3.7.8-alpine3.12
        - ...amazonaws.com/flask:stage
    ports:
      - "5000:5000"
    depends_on:
      - "postgres"
      - "redis"
    environment:
      - FLASK_ENV=development
      - RX_CONFIG=dev.DockerConfig
      - NEW_RELIC_CONFIG_FILE=

etc.
然后在CodeBuild中,如前所述,它成功地将缓存用于1-5,然后停止:

Step 1/21 : FROM ...amazonaws.com/python:3.7.8-alpine3.12
 ---> 32a1b98d0495
Step 2/21 : ENV WORKDIR="/usr/src/app"
 ---> Using cache
 ---> c9313da68d7c
Step 3/21 : RUN mkdir -p $WORKDIR
 ---> Using cache
 ---> 9d82f20584d0
Step 4/21 : WORKDIR $WORKDIR
 ---> Using cache
 ---> f5720978c0ef
Step 5/21 : RUN wget -O /usr/local/bin/sops https://github.com/mozilla/sops/releases/download/3.0.5/sops-3.0.5.linux     && chmod 755 /usr/local/bin/sops
 ---> Using cache
 ---> c4ce543ac06e
Step 6/21 : COPY Pipfile Pipfile.lock ./
 ---> 18f4bc975732
Step 7/21 : RUN ...

...etc
任何帮助都将不胜感激,我快发疯了!或者任何可能的解决办法,不管怎样