Рейтинг:0

Как установить xargs в контейнер под управлением openjdk:17-oracle

флаг cn

Я пытаюсь установить xargs в контейнер с openjdk:17-oracle, но не могу понять, какой менеджер пакетов присутствует в этом образе.

ОТ openjdk:17-оракул
ВЫПОЛНИТЬ apt-получить установку findutils

Выдает ошибку:

 => ОШИБКА [стадия-1 4/4] RUN apt-get install findutils 0.5s
------
 > [стадия-1 4/4] ЗАПУСК apt-get install findutils:
#13 0.395 /bin/sh: apt-get: команда не найдена
-

Как делает ням установить findutils, и ряд других.

Мне потребовался xargs, так как он используется бегунком gradle для создания команды «выполнить» для моего java-процесса.

Рейтинг:1
флаг id

Чтобы ответить на этот вопрос, вам сначала нужно выяснить, на какой базовой среде ОС (если она есть) основан этот контейнер.

Одним из достаточно простых способов является «осмотр» изображения. Вы можете сделать это с помощью Docker Desktop или команды «docker inspect».

Проверка слоев изображения в Docker Desktop

В этом случае мы видим, что «microdnf» используется для установки пакета. «microdnf» — это упрощенная версия «dnf» (современная замена «yum»). Возможно, это изображение основано на подобном изображении «ubi» (урезанное распространяемое подмножество Red Hat)…

Затем вы также можете запустить контейнер и поэкспериментировать. Я указал другую точку входа, потому что в противном случае вы получите jshell, который не особенно полезен для просмотра того, как строится образ.

docker run --rm -it --entrypoint=/bin/bash openjdk:17-oracle

Зная, что «microdnf» — это инструмент, который вам понадобится; вы можете просто использовать создание производного контейнера со следующим в новом слое.

microdnf установить findutils

Доверься тому, что помогает.

флаг in
Или вы можете прочитать документацию. Большинство изображений указывают, на каком изображении они основаны, в README.
флаг cn
Я не смог найти документацию для этого. Все, что я нашел, это то, что он существовал и имел несколько псевдонимов.
Рейтинг:1
флаг in

Это на самом деле не задокументировано, но я нашел это в системе отслеживания проблем образов Oracle для образов на базе Oracle Linux:

ЗАПУСТИТЬ microdnf установить findutils

Для изображений на основе Alpine команда будет выглядеть так:

RUN apk update && apk add findutils
флаг cn
Спасибо! Это сработало отлично! Не уверен, как мне удалось попробовать так много, но пропустить вариант microdnf. Я попробовал alpine, но загадочным образом получил сбои jvm/runtime, поэтому вернулся к оракулу.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.