在 docker 个容器上托管 JavaFX 项目
Hosting JavaFX project on docker container
我在 docker 容器上托管我的 JavaFX GUI 应用程序时遇到问题。我的 JavaFX GUI 应用程序位于单个可执行 jar 文件中:start.jar
这是我的 docker 文件:
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
设置软件管道来尝试 禁用硬件图形加速 依赖项。这可以通过设置 param -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
我在 docker 容器上托管我的 JavaFX GUI 应用程序时遇到问题。我的 JavaFX GUI 应用程序位于单个可执行 jar 文件中:start.jar
这是我的 docker 文件:
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
设置软件管道来尝试 禁用硬件图形加速 依赖项。这可以通过设置 param -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