Puncte:0

Cum se instalează xargs în containerul care rulează openjdk:17-oracle

drapel cn

Încerc să instalez xargs într-un container care rulează openjdk:17-oracle, dar nu îmi pot da seama ce manager de pachete este prezent în această imagine.

DIN openjdk:17-oracle
RUN apt-get install findutils

Afișează eroare:

 => EROARE [etapa-1 4/4] RUN apt-get install findutils 0.5s
------
 > [etapa-1 4/4] RUN apt-get install findutils:
#13 0.395 /bin/sh: apt-get: comanda nu a fost găsită
-

La fel și yum instalează findutils, și alte câteva.

Am cerut xargs, deoarece acesta este folosit de gradle runner pentru a construi comanda „execute” pentru procesul meu java.

Puncte:1
drapel in

Nu este chiar documentat, dar am găsit asta în tracker-ul problemelor imaginilor Oracle pentru imaginile bazate pe Oracle Linux:

RUN microdnf instalează findutils

Pentru imaginile bazate pe Alpine comanda ar fi:

RUN actualizare apk și& apk adăuga findutils
drapel cn
Mulțumiri! Acest lucru a funcționat perfect! Nu sunt sigur cum am reușit să încerc atât de multe, dar sări peste opțiunea microdnf. Am încercat alpine, dar am primit blocări jvm/runtime în mod misterios, așa că am revenit la cea de oracol.
Puncte:1
drapel id

Pentru a răspunde la aceasta, mai întâi trebuie să aflați pe ce fel de mediu OS de bază (dacă există) se bazează acest container.

O modalitate destul de simplă este de a „inspecta” imaginea. Puteți face acest lucru folosind Docker Desktop sau comanda „docker inspect”.

Inspectarea straturilor de imagine în Docker Desktop

În acest caz, putem vedea că „microdnf” este folosit pentru a instala un pachet. „microdnf” este o versiune redusă a „dnf” (înlocuitor modern pentru „yum”). Poate că această imagine se bazează pe genul unei imagini „ubi” (subset redistribuibil decupat al Red Hat)...

Puteți, de asemenea, să porniți containerul și să experimentați. Am specificat un alt punct de intrare, pentru că altfel obțineți un jshell, care nu este deosebit de util pentru a vedea cum este construită imaginea.

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

Știind că „microdnf” este instrumentul pe care îl veți dori; puteți folosi doar să faceți un container derivat cu următoarele într-un strat nou.

microdnf instalează findutils

Ai încredere că ajută.

drapel in
Sau puteți citi documentația. Cele mai multe imagini indică pe ce imagine se bazează în README.
drapel cn
Nu am reușit să găsesc documentația pentru asta. Tot ce am găsit a fost că există și că avea câteva pseudonime.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.