Альтернатива использованию --squash при создании образов докера в Windows с использованием локальных файлов - PullRequest
1 голос
/ 18 марта 2019

--- Update ---

Похоже, что --squash прослушивается в Windows, поэтому на самом деле это не вариант: https://github.com/moby/moby/issues/31468

--- Конец обновления ---

У нас есть несколько локальных установщиков и zip-файлов, которые мы используем для создания наших образов докеров. Это легко заставить работать в Dockerfile:

FROM mcr.microsoft.com/windows/nanoserver

COPY myinstaller.exe .
RUN myinstaller.exe; \
    del myinstaller.exe

Проблема здесь в том, что он создает слой для линии COPY, который увеличивает размер изображения. Обычный обходной путь для этого - иметь одну строку RUN, которая загружает файл из Интернета, запускает команды и затем удаляет установочный файл. Проблема, как написано выше, заключается в том, что установщики находятся в локальной файловой системе.

Я обнаружил, что для докера есть команда --squash:

docker build --squash -t mytestimage .

Это именно то, что я хочу: он дает мне изображение без этого дополнительного установочного файла, который не нужен. Чтобы запустить эту команду, вам нужно включить экспериментальные функции. Существует также открытая проблема, чтобы просто удалить эту функцию:

https://github.com/moby/moby/issues/34565

Есть ли какой-нибудь альтернативный способ использования локальных установщиков в Dockerfile при работе в Windows, который не требует настройки сервера для предоставления файлов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...