我正在尝试将 xargs 安装在运行 openjdk:17-oracle 的容器中,但我无法确定此映像中存在什么包管理器。
FROM openjdk:17-oracle
RUN apt-get install findutils
抛出错误:
=> ERROR [stage-1 4/4] RUN apt-get install findutils 0.5s
------
> [stage-1 4/4] RUN apt-get install findutils:
#13 0.395 /bin/sh: apt-get: command not found
-
yum install findutils
和其他几个一样。
我需要 xargs,因为 gradle runner 使用它来为我的 java 进程构建“执行”命令。
它并没有真正记录在案,但我在基于 Oracle Linux 的映像的 Oracle 映像的问题跟踪器中发现了这一点:
对于基于 Alpine 的图像,命令将是:
要回答这个问题,您首先需要找出该容器基于哪种基本操作系统环境(如果有)。
一种相当简单的方法是“检查”图像。您可以使用 Docker Desktop 或“docker inspect”命令执行此操作。
在这种情况下,我们可以看到“microdnf”被用来安装一个包。'microdnf' 是 'dnf' 的精简版('yum' 的现代替代品)。也许这张图片是基于类似“ubi”的图片(Red Hat 的缩减可再发行子集)......
然后,您还可以启动容器并进行实验。我指定了一个不同的入口点,否则你会得到一个 jshell,它对于查看图像的构建方式并不是特别有用。
知道“microdnf”是您想要的工具;您可以在新层中使用以下内容制作衍生容器。
相信这会有所帮助。