Jib не использует Dockerfile
(и работает даже без установленного Docker);то, как Jib создает образ, принципиально отличается от того, как Docker CLI создает образ с использованием Dockerfile
(воспроизводимое или невоспроизводимое, декларативное и обязательное, сборка без Docker и Dockerfile
без использования демона и клиента Docker,требующие root-привилегии или нет). По сути, Jib не «запускает» директивы Dockerfile
, особенно такие, как RUN
, которые что-то исполняют;Jib не предоставляет / не включает среду выполнения Docker (это одна из точек Jib).
Для установки сложных программных пакетов, таких как OpenJDK, лучшим вариантом (на данный момент) является подготовка собственного базового образа, которыйпоставляется со всеми предварительно установленными пакетами, и Jib использует этот образ. Обратите внимание, что в последних версиях Jib можно указать локальный образ демона Docker или тарбол в качестве базового образа (в дополнение к образу удаленного реестра) .
Если вам просто нужно установить небольшое количествоВ двоичные файлы можно копировать произвольные файлы с помощью функции extraDirectories
( Maven / Gradle ). Вот пример , который устанавливает Java-агент Stackdriver Debugger с использованием этой функции.
На всякий случай вы можете настроить Jib на произвольный запуск ENTRYPOINT
или CMD
или включить собственный скриптфайлы (используя функцию extraDirectories
) и запускайте их во время выполнения , но я не думаю, что вы запрашиваете эту возможность. Я считаю, что ваша цель - установить дополнительные программные пакеты во время сборки.