Влияет ли очистка кеша пряжи пользователя на изображение docker? - PullRequest
2 голосов
/ 27 мая 2020

При построении образов docker после следующих шагов

  • Установка зависимостей (RUN yarn install)
  • сгенерировать сборку (RUN ng build --prod)

Если я очищу кеш пряжи из местоположения usr, используя команду ниже в файле docker, повлияет ли это впоследствии, когда я запустил изображение docker?

RUN rm -rf /usr/local/share/.cache/yarn/*

, поскольку размер docker изображений был огромным 1,2 ГБ, поэтому у меня есть чистый в указанном выше месте около 450+ МБ.

Я использую более низкую версию docker (по определенной c причине), которая не поддерживает многоступенчатую сборку.

Кроме того, приведенная выше команда эквивалентна RUN yarn очистить кеш?

FROM node:10-alpine

WORKDIR /app

COPY . /app

RUN apk --no-cache add yarn \
    && yarn install \
    && ng build --prod \
    && rm -rf /var/cache/apk/* \
    && rm -rf /usr/local/share/.cache/yarn/*

EXPOSE 3000

CMD ["npm", "run", "start"]

1 Ответ

0 голосов
/ 29 мая 2020

yarn Version 1

Вы можете безопасно удалить файлы кеша, это не повлияет на ваше приложение. Для этого даже есть специальная команда :

$ yarn cache clean

yarn Version 2

С Plug'n'Play , однако, очищая кеш очень вероятно, что ваше приложение сломается, потому что зависимости больше не помещаются в node_modules. Вот что говорится в документации:

В этом режиме установки (теперь по умолчанию, начиная с Yarn v2) Yarn генерирует один файл .pnp. js вместо обычных node_modules. Вместо исходного кода установленных пакетов файл .pnp. js содержит карту, связывающую имя и версию пакета с местом на диске, и другую карту, связывающую имя и версию пакета с его набором зависимостей. Благодаря этой эффективной системе Yarn может сообщить Node, где именно искать необходимые файлы - независимо от того, кто их запрашивает!

Место на диске - кеш.

Вы можно вернуть прежнее поведение, поместив это в свой файл .yarnrc.yml.

nodeLinker: node-modules

Подробнее о Plug'n'Play здесь

...