Вы пользуетесь кешем докера, когда пытаетесь снова создать образ докера.Допустим, у вас есть это:
COPY . ./
RUN set -eux; \
composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress --no-suggest; \
composer clear-cache
Это нормально, и конечный результат будет таким же.Разница в том, что если вы измените какой-либо файл в вашем хранилище, то все инструкции из COPY
будут выполнены снова.Это означает, что если вы что-то измените (может быть, вы добавили изображение, изменили файл CSS или удалили файл php), вы переустановите все зависимости, даже если вам это не нужно.И composer install
также займет свое (долгое) время.Время, которое вы можете сэкономить.
Теперь возьмем ваш пример:
COPY composer.json composer.lock ./
RUN set -eux; \
composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress --no-suggest; \
composer clear-cache
COPY . ./
Теперь единственное время, когда вам нужно повторно установить ваши пакеты, - это когда composer.json
или composer.lock
меняется.Вы не запускаете его каждый раз.