Подтвердить что ты не робот

Docker обновляет изображение при изменении dockerfile

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

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

Извините, если это немой вопрос

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

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

Приложение Docker rails и git