Расширение этапа многоэтапного встроенного изображения в докер-хабе
Благодаря поддержке многоэтапных сборок стало удобно поддерживать репо до определенного момента. Но как вы можете продлить эти репо?
До сих пор вы можете создать изображение определенного тега, используя --target
в docker build
команда.
Из docker-compose вы можете использовать target
запись в context
запись, чтобы указать это.
В моем случае я хочу использовать изображение из докера-концентратора и расширить конкретную цель. Прямо сейчас я использую Dockerfile (который я вызываю из docker-compose, но это не имеет значения), который имеет
FROM repo/sample-name
DO my stuff
Это репо имеет 3 цели в своем Dockerfile с именем sample-name
, sample-name-full
который расширяется sample-name
а также sample-name-dev
который расширяется sample-name-full
, Черточки в этих именах похожи на репо с именами их целей.
Кажется, что происходит то, что я получаю первую цель в качестве цели сборки (или я думаю, что да), которая названа в честь самого репо. Как я могу, скажем, расширить промежуточную цель?
Я пробовал такие вещи, как
FROM repo/sample-name:latest-sample-name-dev
и т.д., но я не мог заставить это работать.
1 ответ
Это невозможно по замыслу. Одним из преимуществ многоэтапной сборки является скрытие промежуточного этапа, плохим примером может быть загрузка чего-либо с жестко заданными учетными данными на первом этапе, а затем на втором этапе копирование результата с него. Окончательное изображение, доступное на докер-хабе, якобы построено в один этап. Большую часть времени вы не будете беспокоиться об этом, так как заключительная стадия приобрела все полезные вещи из предыдущих.