Ich möchte ein auf Alpine basierendes Java 1.5-Docker-Image (basierend auf Alpine von Docker Hub) für die Ausführungs-/Entwicklungsumgebung meiner Apps einrichten, aber das Installationsprogramm kann aufgrund einer Überprüfung nicht ausgeführt werden (der Befehl df gibt nichts zurück). Dann versuche ich, das Image aus der .bin-Datei zu extrahieren und dem extrahierten Image Ausführungsberechtigungen hinzuzufügen, und es gibt etwas wie ELF ... nicht gefunden zurück. Ich habe die Architektur gemäß meiner heruntergeladenen Version des JRE-Installationsprogramms noch einmal überprüft, um sicherzustellen, dass sie identisch sind.
Ich frage mich, wie Leute JRE 7/8 auf Alpine installieren? Warum nicht 5? Und das Wichtigste: Was kann ich tun, außer es aufzugeben?
Dank im Voraus.
Antwort1
Alpine verwendet musl libc, während die Oracle Java-Binärdateien nur auf glibc laufen. Das bedeutet, dass Sie die Binärdateien nicht einfach mit dem sofort einsatzbereiten Alpine verwenden können.vizzbuzz/base-java
löst die Komplikationen, die musl libc mit sich bringt, indem ein glibc-Paket installiert wird. Sehen Sie sich das an, Dockerfile
um sich inspirieren zu lassen, oder verwenden Sie dieses Bild einfach für Ihr Projekt.
Es gibt eine sehr wertvolle Diskussion darüber aufdocker-alpine Ausgabe Nr. 11.
Ich mag die Basisimages von sillelien für Alpine sehr, da diese Images S6 als Prozess-Supervisor verwenden, der einige Probleme behebt, wie etwa das Protokollieren und sichere Herunterfahren von Prozessen als Reaktion auf den docker stop
Befehl.