Я пытаюсь создать образ докера, избегая ненужных групп, и столкнулся с проблемой, которая, на мой взгляд, должна быть распространенной, но до сих пор я не нашел простого решения. (Я собираю докер в системе Ubuntu 18.04 и начинаю со слоя FROM ubuntu
.)
В частности, у меня есть очень большой файл .deb (через 3G), который мне нужно установить в образе. Достаточно просто набрать COPY
или ADD
, а затем RUN dpkg -i
, но это приводит к дублированию нескольких ГБ пространства, которое мне не нужно. Конечно, простое удаление файла не уменьшает размер изображения.
Я бы хотел иметь возможность смонтировать том для доступа к файлу .deb
, а не к COPY
, что легко сделать при запуске контейнера, но, по-видимому, невозможно при его создании?
То, что я до сих пор придумал, - это собрать докер до того места, где я ADD
запишу файл, а затем запустить его с подключенным томом, чтобы я мог получить к нему доступ из контейнера без COPY
ing это, затем я dpkg -i
это, затем я делаю фиксацию Docker для создания изображения из этого контейнера. Конечно же, я получаю изображение, которое на 3 ГБ меньше, чем моя первая попытка, но это выглядит как хак и усложняет создание сценариев сборки.
Я думаю, что должен быть более подходящий способ добиться этого, но пока мои поиски не выявили очевидного ответа. Я что-то упустил?