Настройки обновления изображения вместе, когда изменения файла Docker


Я играю с Докером, создавая Dockerfile с некоторыми инструкциями nodejs. Прямо сейчас, каждый раз, когда я делаю изменения в dockerfile я воссоздаю изображение, запустив sudo docker build -t nodejstest . в моей папке проекта, однако, это создает новый образ каждый раз и проглатывает мой ssd довольно скоро.

есть ли способ обновить существующий образ при изменении dockerfile или я вынужден создавать новый каждый раз, когда я делаю изменения в файл?

Извините, если это глупо вопрос

3 58

3 ответа:

Docker build поддерживает кэширование до тех пор, пока нет ADD инструкция. Если вы активно разрабатываете и меняете файлы файлов, только то, что после ADD будет восстановлен.

начиная с 0.6.2 (запланировано сегодня), вы можете сделать docker build --rm . и он удалит временные контейнеры. Он будет держать изображения, хотя.

чтобы удалить бесхозные изображения, вы можете проверить их с помощью docker images и docker rmi <id> на одном из них. На данный момент существует автоматическая обрезка и все непомеченные изображения (сироты, предыдущие сборки) будут удалены.

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

во время разработки имеет меньше смысла перестраивать весь контейнер для каждой фиксации. Позже вы можете автоматизировать создание контейнера Docker с вашим последним кодом в рамках процесса QA/развертывания.

в принципе, вы можете сделать минимальный контейнер, который тянет код (используя git при запуске контейнера или используя -v /home/myuser/mynode:/home/myuser/mynode с точкой входа для запуска узла).

смотрите мой ответ на этот вопрос:

Настройки Приложения Rails и ГИТ