Как вы кешируете зависимости пряжи для сборки образа Docker в CircleCI? - PullRequest
0 голосов
/ 06 октября 2018

Мои yarn install с сейчас занимают ~ 5 минут.Я пытаюсь найти способ сократить их.

Прямо сейчас в моем Dockerfile у меня есть следующее:

COPY package.json yarn.lock node_modules /usr/src/app/
COPY ${YARN_CACHE} /root/.cache/yarn/
WORKDIR /usr/src/app

# We are doing this so that we can make use of layer caching 
# (i.e. most likely yarn deps won't change as often as the app code)
COPY . /usr/src/app

# yarn install
RUN yarn install

И в моем файле круга у меня есть

  - restore_cache:
     keys:
       # only restores cache if the yarn file is the same
       - yarn-packages-v4-{{ checksum "yarn.lock" }}
  - run: docker pull "xxx.dkr.ecr.us-east-1.amazonaws.com/website:latest"
  - run: docker build --build-arg NODE_ENV=production --build-arg YARN_CACHE=$(yarn cache dir) --force-rm -t xxx.dkr.ecr.us-east-1.amazonaws.com/website:build-${CIRCLE_BUILD_NUM} .

Однако моя установка пряжи все еще занимает 5 минут.Я что-то не так делаю?

1 Ответ

0 голосов
/ 02 ноября 2018

Проблема в том, что результатом yarn cache dir является внешняя папка, которая либо не существует в сборке Docker, либо просто пуста.У вас есть пара опций

...