Настройки обновления изображения вместе, когда изменения файла Docker
Я играю с Докером, создавая Dockerfile
с некоторыми инструкциями nodejs. Прямо сейчас, каждый раз, когда я делаю изменения в dockerfile я воссоздаю изображение, запустив sudo docker build -t nodejstest .
в моей папке проекта, однако, это создает новый образ каждый раз и проглатывает мой ssd довольно скоро.
есть ли способ обновить существующий образ при изменении dockerfile или я вынужден создавать новый каждый раз, когда я делаю изменения в файл?
Извините, если это глупо вопрос
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
с точкой входа для запуска узла).смотрите мой ответ на этот вопрос: