1 回答

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊
我終于讓這個工作了!我必須在我的 Windows 主機(jī)上安裝 VcXsrv 并將其添加到 docker run 命令中:
-e DISPLAY=MY IP ADDRESS:0.0
我的應(yīng)用程序現(xiàn)在可以正常啟動并在實際開始 Spring 初始化之前輸出以下內(nèi)容:
Prism pipeline init order: es2 sw
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2
succeeded.
GLFactory using com.sun.prism.es2.X11GLFactory
MESA-LOADER: failed to open swrast (search paths /usr/lib/xorg/modules/dri)
libGL error: failed to load driver: swrast
Prism-ES2 Error : GL_VERSION (major.minor) = 1.4
(X) Got class = class com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.es2.ES2Pipeline
*** Fallback to Prism SW pipeline
Prism pipeline name = com.sun.prism.sw.SWPipeline
(X) Got class = class com.sun.prism.sw.SWPipeline
Initialized prism pipeline: com.sun.prism.sw.SWPipeline
MESA-LOADER: failed to open swrast (search paths /usr/lib/xorg/modules/dri)
libGL error: failed to load driver: swrast
vsync: true vpipe: false
仍然有一些錯誤我會嘗試解決,但它實際上現(xiàn)在開始了!
根據(jù)要求提供完整的 dockerfile,我仍在解決導(dǎo)致它回退到 prism 管道的錯誤,稍后將更新:
FROM adoptopenjdk/openjdk11:alpine
VOLUME /tmp
RUN apk update && apk add libx11 mesa-gl gtk+3.0 mesa-dri-swrast mesa-demos
&& apk update
ADD someJar.jar someJar.jar
ADD lib lib
ADD config.properties config.properties
ENTRYPOINT ["java", "-javaagent:lib/aspectjweaver-1.9.2.jar", "-javaagent:lib/spring-instrument-5.1.6.RELEASE.jar", "--module-path", "lib", "--add-modules=javafx.controls", "-Dprism.verbose=true", "-Djava.awt.headless=true", "-jar","someJar.jar"]
******最終設(shè)置******
我深入研究了 libGL 錯誤,讓 ES2 管道工作的麻煩對于我的需要來說甚至不值得。這將涉及與 Nvidia 和 CUDA 驅(qū)動程序的混亂,并且完全沒有用,因為我的應(yīng)用程序無論如何只是一個后臺服務(wù)。這是使一切正常的最終設(shè)置:
Dockerfile(切換回 openjdk 以與我的其他應(yīng)用程序保持一致,并找出要安裝的最低限度的包)
FROM openjdk:11-jre-slim
RUN apt-get update && apt-get install libgtk-3-0 libglu1-mesa -y && apt-get update
VOLUME /tmp
ADD someJar.jar someJar.jar
ADD lib lib
ADD config.properties config.properties
ENTRYPOINT ["java", "-javaagent:lib/aspectjweaver-1.9.2.jar", "-javaagent:lib/spring-instrument-5.1.6.RELEASE.jar", "--module-path", "lib/javafx-sdk-11.0.2", "-jar", "someJar.jar"]
Docker構(gòu)建命令
docker build -f Dockerfile -t some_service .
Docker 運行命令
docker run -t --name Some_Service -e DISPLAY=MY IP:0.0 -e SOME_VARIABLE= --link mySQLSRV:mysql some_service
希望這對某人有幫助,這花了我?guī)滋斓臅r間才開始工作!
添加回答
舉報