--- 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, который не требует настройки сервера для предоставления файлов?