В моем проекте, чтобы ускорить сборку, я попытался кэшировать папку кэширования composer, используя следующую команду buildspec.yml
:
version: 0.2
env:
variables:
COMPOSER_CACHE_DIR: "${CODEBUILD_SRC_DIR}/.cache/composer"
phases:
install:
commands:
- apk add --update git
- echo ${COMPOSER_CACHE_DIR}
- mkdir -p ${COMPOSER_CACHE_DIR}
- ls -l ${COMPOSER_CACHE_DIR}
build:
commands:
- ls -l ${COMPOSER_CACHE_DIR}
- ls -l vendor
- composer install --no-dev --no-progress --no-suggest --optimize-autoloader
- ls -l ${COMPOSER_CACHE_DIR}
artifacts:
files:
- app/**/*
- bootstrap/**/*
- config/**/*
- database/**/*
- machine/**/*
- public/**/*
- resources/**/*
- routes/**/*
- scripts/**/*
- vendor/**/*
- .env
- appspec.yml
- artisan
- composer.json
cache:
paths:
- ${COMPOSER_CACHE_DIR}
Но как только сборка запускается, I ls -l ${COMPOSER_CACHE_DIR}
после выполнения он показывает пустую папку:
[Container] 2020/04/23 07:28:43 Running command ls -l ${COMPOSER_CACHE_DIR}
total 0
Но после выполнения composer install
заполняется COMPOSER_CACHE_DIR
:
[Container] 2020/04/23 07:29:36 Running command ls -l ${COMPOSER_CACHE_DIR}
total 8
drwxr-xr-x 41 root root 4096 Apr 23 07:29 files
drwxr-xr-x 3 root root 4096 Apr 23 07:28 repo
Так что мне интересно, почему сборка кода не может заполнить папку COMPOSER_CACHE_DIR
на этапе install
? Я проверял S3, и файлы помещаются как ожидалось. Я также не установил срок хранения в своем кеше и использую собственное изображение docker вместо предоставленного amazon.