簡體   English   中英

在 docker 容器上托管 JavaFX 項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM