Вопрос: Как вы указываете в Dockerfile или в командной строке docker build
, что вы хотели бы, чтобы tmpfs был смонтирован в сборочном контейнере?Это в контексте разделенной сборки - первый контейнер, который будет использовать RAM-диск, создает приложение из источника, а второй этап копирует результат в новый контейнер.
ЭтоВопрос кажется похожим, но мои мотивы отличаются.Меня не очень беспокоит сохранение устаревших слоев изображения, но меня интересует производительность сборки.При экспериментировании за пределами Docker создание конкретного приложения, с которым я работаю, было в 4 раза быстрее, когда все дерево исходных текстов было в ОЗУ, а не на диске.(В проекте много промежуточных сборок и параллелизма, поэтому даже SSD имеет тенденцию немного колебаться)
Поскольку Docker поддерживает монтирование tmpfs во время обычной команды docker run
, может показаться, что должен быть способвключить это в Dockerfile?Тем не менее, я не могу найти эту информацию где-либо - почти каждый поиск "tmpfs" и "dockerfile" или "build" или "ramdisk" и т. Д. Просто указывает либо на вышеуказанный связанный пост, либо на документы Docker об использовании tmpfs вконтейнеры начинаются с docker run
.
Было бы приемлемо, если бы tmpfs не сохранялся даже до сборки второго контейнера.Это можно исправить, просто скопировав собранное приложение из tmpfs в контейнере сборки перед выходом из этого контейнера, а затем используя это новое местоположение при копировании.