TL; DR
Installez VcXsrv et ajoutez ce qui suit à votre Dockerfile.
Commande à ajouter à Dockerfile
ENV DISPLAY host.docker.internal:0.0
RUN apt-get install openjfx
Je souhaite exécuter une application JavaFX dans un conteneur Docker!
Je pense que beaucoup de gens le pensent. Je suis l'un d'eux.
À ce moment-là, j'ai rencontré des problèmes.
Ici, nous résolvons le problème ci-dessus.
Vous devez installer le package openjfx.
Depuis Java 9 divisé en Oracle JDK et Open JDK, Open JDK n'inclut plus les packages JavaFX. À l'origine, le package openjdk et le package openjfx devraient être introduits dans l'image de base de Sarah, mais l'image de base publiée par openjdk n'inclut pas le package openjfx.
La description suivante est requise dans le Dockerfile.
Installez le package openjfx
RUN apt-get install openjfx
Si vous voulez l'écrire proprement, vous devez l'écrire comme suit.
Installez proprement le package openjfx
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
L'écran à l'intérieur du conteneur s'affiche uniquement à l'intérieur du conteneur. Cela signifie qu'il est généralement impossible de voir de l'extérieur du conteneur.
Mais c'est Docker, ça ne fait rien. Il existe une méthode pour afficher l'écran GUI à l'intérieur du conteneur vers l'extérieur du conteneur.
Pour plus de détails, reportez-vous à la page Web suivante.
Installez VcXsrv.
Ce logiciel est comme un émulateur X-Server et peut afficher des applications GUI WSL.
Afficher l'interface graphique Linux sur Win10 avec WSL et VcXsrv https://www.usagi1975.com/201903021706/
La variable d'environnement DISPLAY est la destination de sortie de l'écran GUI affiché par le système x window à l'intérieur du conteneur.
Définissons ceci sur host.docker.internal: 0.0
.
Définition de la variable d'environnement DISPLAY
ENV DISPLAY host.docker.internal:0.0
Exécutez l'application GUI dans Docker pour le conteneur Windows --FILES = 0 https://fileszero.kimurak.net/2019-04-18-docker-and-gui-on-windows/
AFFICHAGE-Que vas-tu faire? https://sites.google.com/site/teyasn001/ubuntu-12-10/huan-jing-bian-shudisplay
Déplacer les fenêtres du serveur X local vers le serveur distant Qiita https://qiita.com/kkk627/items/8db34266722488eae412
En résumé, le mécanisme est le suivant.
host.docker.internal: 0.0
host.docker.internal: 0.0
L'application JavaFX que j'ai créée est faite par Gradle, donc ce sera comme suit.
Exemple
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"]
Veuillez vous y référer.
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