Java
如何在執行 openjdk:17-oracle 的容器中安裝 xargs
我正在嘗試將 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 映像的問題跟踪器中發現了這一點:
RUN microdnf install findutils
對於基於 Alpine 的圖像,命令將是:
RUN apk update && apk add findutils
要回答這個問題,您首先需要找出該容器基於哪種基本作業系統環境(如果有)。
一種相當簡單的方法是“檢查”圖像。您可以使用 Docker Desktop 或“docker inspect”命令執行此操作。
在這種情況下,我們可以看到“microdnf”被用來安裝一個包。‘microdnf’ 是 ‘dnf’ 的精簡版(‘yum’ 的現代替代品)。也許這張圖片是基於類似“ubi”的圖片(Red Hat 的縮減可再發行子集)……
然後,您還可以啟動容器並進行實驗。我指定了一個不同的入口點,否則你會得到一個 jshell,它對於查看圖像的建構方式並不是特別有用。
docker run --rm -it --entrypoint=/bin/bash openjdk:17-oracle
知道“microdnf”是您想要的工具;您可以在新層中使用以下內容製作衍生容器。
microdnf install findutils
相信這會有所幫助。