[英]Hosting JavaFX project on docker container
我無法在 docker 容器上托管我的 JavaFX GUI 應用程序。 我的 JavaFX GUI 應用程序位於單個可執行文件 jar 文件中: start.jar
這是我的 Z60F5AD192689EB6E5E37
FROM openjdk:11-jre-slim
RUN mkdir logs
RUN apt-get update && apt-get install libgtk-3-0 libglu1-mesa xvfb -y && apt-get update
RUN apt-get install xvfb
COPY library/javafx-sdk-11.0.2 javafx-sdk-11.0.2
COPY start.jar start.jar
ENV DISPLAY=:99
COPY run.sh /run.sh
RUN chmod a+x /run.sh
CMD /run.sh
和run.sh
:
#!/bin/bash
rm /tmp/.X99-lock #needed when docker container is restarted
Xvfb :99 -screen 0 640x480x8 -nolisten tcp &
java --module-path javafx-sdk-11.0.2 -jar start.jar
當我運行我的start.jar
應用程序時,我收到此錯誤:
ES2 Prism: Error - GLX extension is not supported
GLX version 1.3 or higher is required
如何更新到正確的 GLX 版本,以便在 docker 上成功運行 JavaFX GUI 應用程序?
您可以嘗試通過為Prism
設置軟件管道來禁用硬件圖形加速依賴性。 這可以通過設置參數-Dprism.order=sw
來完成。
因此run.sh
中的 java 命令應更改為:
#!/bin/bash
rm /tmp/.X99-lock #needed when docker container is restarted
Xvfb :99 -screen 0 640x480x8 -nolisten tcp &
java -Dprism.order=sw --module-path javafx-sdk-11.0.2-jar start.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.