Продолжить создание образа Docker после возникновения ошибки - PullRequest
0 голосов
/ 02 января 2019

У меня есть Dockerfile, который устанавливает Ubuntu и некоторые пакеты поверх него, а затем переходит к использованию этих пакетов.Допустим, мне нужно запустить команду 'wget', но я забыл выполнить установку пакета 'wget'.Я добавляю пакет для установки команды и продолжаю выполнение.Однако я должен начать сначала - установить Ubuntu, установить пакет и т. Д., Или я должен?Есть ли возможность сохранить то, что я делал, до появления ошибки, и продолжить с того момента, после того как я исправил свои ошибки, вместо того, чтобы загружать все заново?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Просто чтобы указать, что ответ Дэвида Мейса был наиболее подходящим для моего случая:

Каждый раз, когда что-либо меняется, ни один из последующих шагов не будет кэширован.Так как у вас есть копия./ camera очень рано в Dockerfile, следующий RUN apt-get ... становится не кешируемым, если что-то меняется в вашем исходном дереве.Я перенесу это на потом.

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

0 голосов
/ 02 января 2019

Иногда для этого экземпляра вы можете разделить сборку на цепочку изображений.Каждый последующий шаг выполняет предыдущий шаг по команде FROM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...