Человек, который написал этот Dockerfile, скорее всего, не понимает, как работает многоступенчатая сборка. Это обычное недоразумение, потому что общий запрос с Dockerfiles - объединить несколько образов вместе, а это не то, что предоставляют несколько строк FROM.
В этом примере загружается изображение, а затем оно сразу игнорируется. Если бы на более позднем этапе была команда COPY
, можно было бы скопировать из этого предыдущего изображения, что является одной из немногих причин, по которым я видел, чтобы импортировать изображение, ничего не делая с ним:
ARG parent_ver=2.0
FROM repo:5000/parent:${parent_ver} as parent
FROM base as release
COPY --from=parent /some/file /dest
...
Обычно вы можете копировать прямо с другого изображения, но если вы хотите указать его с помощью переменной, как указано выше, текущее решение включает в себя описанный выше обходной путь.
Поскольку в приведенном примере ничего из этого не было, все, что вы увидите, - это загруженный и неиспользуемый ненужный образ. Это замедляет сборку, занимает полосу пропускания и занимает дисковое пространство, но только на сервере сборки. Было бы полезно заполнить проблему в этом репозитории GitHub, чтобы исправить их пример.
person
BMitch
schedule
30.11.2018
FROM
. - person David Maze   schedule 30.11.2018