Почему Docker кэширует не все команды?

Доброй ночи.
Обычно большинство команд при повторной сборке образа юзают кэш и выполняются моментально. Однако некоторые (самые долгие) не кэшируются и упорно выполняются снова с нуля. Например, вот это:
# Gems and bundle
RUN cd /app/ \
    && bundle config git.allow_insecure true \
    && bundle config build.nokogiri --use-system-libraries \
    && bundle install --without development test \
    && apt-get purge -y \
      git \
      openssh-client \
      make \
      g++ \
      libxml2-dev \
      libxslt1-dev \
      libmagickwand-dev \
      libmariadbclient-dev \
      libsqlite3-dev \
      postgresql-server-dev-9.6 \
      libjpeg-dev \
      libpng-dev \
      libtiff-dev \
      libwebp-dev \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf /root/.ssh /tmp/* /var/tmp/*

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

Почему некоторые команды не кэшируются, и как сделать так, чтобы кэшировалось?

Заранее спасибо.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Расшарьте вес Dockerfile, или просто просмотрите его сами. Если на каком-то этапе были изменения, то все последующие кэши не используются.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы