Docker CMD или RUN с использованием сборки JIB - PullRequest
0 голосов
/ 04 ноября 2019

Мне нужно создать собственный образ на основе Ubuntu, содержащий программное обеспечение, которое мне нужно установить с помощью apt. Например:

sudo apt-get install pcscd 
sudo apt-get install pcsc-tools # same as pcsc-lite   

# For OMNIKEY for driver Then unpack the file and run the installer:
cd /home/cccam/ifdokccid_lnx_x64-3.7.0/ 
chmod 755 install
sudo ./install

И я также хочу, чтобы программное обеспечение работало под OpenJDK 1.8 64 bit, которое я также установлю. Дело в том, что мне нужно запускать такие команды. Как я могу сделать это с JIB? Есть ли способ заставить JIB использовать Docker File? Есть ли способ передать сценарий таких команд в JIB?

1 Ответ

0 голосов
/ 04 ноября 2019

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) и запускайте их во время выполнения , но я не думаю, что вы запрашиваете эту возможность. Я считаю, что ваша цель - установить дополнительные программные пакеты во время сборки.

...