TL; DR
Installieren Sie VcXsrv und fügen Sie Ihrer Docker-Datei Folgendes hinzu.
Befehl zum Hinzufügen zu Dockerfile
ENV DISPLAY host.docker.internal:0.0
RUN apt-get install openjfx
Ich möchte eine JavaFX-Anwendung in einem Docker-Container ausführen!
Ich denke, viele Leute denken so. Ich bin einer von denen.
Zu dieser Zeit hatte ich einige Probleme.
Hier werden wir das obige Problem lösen.
Sie müssen das openjfx-Paket installieren.
Seit Java 9 in Oracle JDK und Open JDK aufgeteilt ist, enthält Open JDK keine JavaFX-Pakete mehr. Ursprünglich sollten das openjdk-Paket und das openjfx-Paket in Sarahs Basis-Image eingeführt werden, aber das von openjdk veröffentlichte Basis-Image enthält nicht das openjfx-Paket.
Die folgende Beschreibung ist in der Docker-Datei erforderlich.
Installieren Sie das openjfx-Paket
RUN apt-get install openjfx
Wenn Sie es ordentlich schreiben möchten, sollten Sie es wie folgt schreiben.
Installieren Sie das openjfx-Paket sauber
RUN apt-get update && \
apt-get install -y --no-install-recommends \
openjfx \
&& \
rm -rf /var/lib/apt/lists/*
OpenJFX can not be used anymore · Issue #323 · docker-library/openjdk https://github.com/docker-library/openjdk/issues/323
rburgst/java8-openjfx-docker: openjdk8 container including openjfx https://github.com/rburgst/java8-openjfx-docker
Der Bildschirm im Container wird nur im Container angezeigt. Dies bedeutet, dass es normalerweise unmöglich ist, von außerhalb des Behälters zu sehen.
Aber das ist Docker, es macht nichts. Es gibt eine Methode, um den GUI-Bildschirm innerhalb des Containers außerhalb des Containers auszugeben.
Weitere Informationen finden Sie auf der folgenden Webseite.
Installieren Sie VcXsrv.
Diese Software ähnelt einem X-Server-Emulator und kann WSL-GUI-Apps anzeigen.
Zeigen Sie die Linux-GUI unter Win10 mit WSL und VcXsrv an https://www.usagi1975.com/201903021706/
Die Umgebungsvariable DISPLAY ist das Ausgabeziel des GUI-Bildschirms, der vom x-Fenstersystem im Container angezeigt wird. Setzen wir dies auf "host.docker.internal: 0.0".
Einstellen der Umgebungsvariablen DISPLAY
ENV DISPLAY host.docker.internal:0.0
Führen Sie die GUI-App in Docker für Windows-Container aus --FILES = 0 https://fileszero.kimurak.net/2019-04-18-docker-and-gui-on-windows/
ANZEIGE - Was wirst du tun? https://sites.google.com/site/teyasn001/ubuntu-12-10/huan-jing-bian-shudisplay
Fliegen Sie vom lokalen zum Remote-X-Server-Qiita https://qiita.com/kkk627/items/8db34266722488eae412
Zusammenfassend ist der Mechanismus wie folgt.
host.docker.internal: 0.0
Die von mir erstellte JavaFX-App wurde von Gradle erstellt.
Beispiel
FROM gradle:5.5-jdk11
ENV DISPLAY host.docker.internal:0.0
RUN apt-get update && \
apt-get install -y --no-install-recommends \
openjfx \
&& \
rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/morichan/retuss.git
WORKDIR retuss
RUN gradle build
CMD ["gradle", "run"]
Bitte nehmen Sie Bezug darauf.
docker-images/retuss-docker at master · Morichan/docker-images https://github.com/Morichan/docker-images/tree/master/retuss-docker
Morichan/Retuss: Real-time Ensure Traceability between UML and Source-code System https://github.com/Morichan/Retuss
Recommended Posts