ฉันพัฒนาแอปพลิเคชั่นที่ใช้เป็นบริการสื่อสารสำหรับเว็บแอปแยกต่างหาก ฉันมีปัญหา 0 ข้อที่ "เทียบเคียง" แอปพลิเคชันเว็บ แต่บริการกำลังพิสูจน์แล้วว่าเป็นฝันร้าย มันขึ้นอยู่กับ JavaFX และมีคุณสมบัติที่ผู้ใช้สามารถตั้งค่าได้ในไฟล์ปรับแต่งที่ทำให้แอปไม่เริ่มต้น windows, เมนู, คอนเทนเนอร์, ฯลฯ โหมด "หัวขาด" นี้ (ไม่แน่ใจว่าเป็นจริง หัวขาด ... ) เปลี่ยนแอปบริการเป็นบริการพื้นหลังอย่างมีประสิทธิภาพ ให้ฉันนำหน้านี้ด้วยการบอกว่าแอพทำงานได้อย่างไร้ที่ติเมื่อทำงานบนเครื่อง windows 10 ของฉันและฉันได้ติดตั้งไว้ในเครื่องอื่น ๆ อีกหลายเครื่อง (ไม่มีการเทียบชิดขอบทั้งหมด) โดยไม่มีปัญหา
นี่คือ dockerfile ฉันมากับ:
FROM openjdk:13.0.1-slim
RUN apt-get update && apt-get install libgtk-3-0 libglu1-mesa -y && apt-get update
VOLUME /tmp
ADD Some_Service-0.0.1-SNAPSHOT.jar Some_Service-0.0.1-SNAPSHOT.jar
ADD lib lib
ADD config.properties config.properties
ENTRYPOINT ["java", "--module-path", "lib/javafx-sdk-13", "-jar", "Some_Service-0.0.1-SNAPSHOT.jar"]
ฉันใช้คำสั่งนี้เพื่อสร้างคอนเทนเนอร์:
docker run -t --name Some_Service -e DISPLAY=192.168.1.71:0.0 -e SERVICE_HOME= --link mySQLMD:mysql some_service
สมมติว่า VcXsrv ทำงานบนพีซีของฉันแอปเริ่มต้นอย่างถูกต้องแม้ว่าจะให้คำเตือนเหล่านี้เมื่อเริ่มครั้งแรก:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Prism-ES2 Error : GL_VERSION (major.minor) = 1.4
ปัญหาคือใช้งานได้ประมาณ 2 นาทีเท่านั้น ในที่สุดคอนเทนเนอร์เกิดข้อผิดพลาดและล่ม:
Gdk-Message: 15:28:54.770: java: Fatal IO error 11 (Resource temporarily unavailable) on X server 192.168.1.71:0.0.
ฉันเข้าใจว่าข้อความเริ่มต้นเกิดจากคอนเทนเนอร์ที่ไม่มีไดรเวอร์ NVidia แต่การย้อนกลับไปยังไปป์ไลน์ของซอฟต์แวร์ดูเหมือนว่าจะทำงานได้ดี สุจริตฉันไม่รู้ว่าข้อผิดพลาด IO ร้ายแรงอาจเกิดจาก ฉันได้ลองกับโฮสต์อื่น ๆ ที่รันนักเทียบท่าแล้วและเกิดปัญหาเดียวกัน
ความคิดวิธีการแก้ไขปัญหานี้? ยิ่งไปกว่านั้นความคิดใด ๆ ที่จะทำให้แอป JavaFX มีความไร้สมองและไม่จำเป็นต้องมีการเริ่มต้นสิ่งใดเลย เมื่อใช้งานแบบไม่ใช้หัวฉันใช้งานและเป็นส่วนหนึ่งของ JavaFX ดังนั้นฉันจึงไม่สามารถใช้งาน ...
-v /tmp/.X11-unix:/tmp/.X11-unix
)? แอพที่พยายามแนบกับ Xserver แนะนำว่าไม่ใช่ "หัวขาด" จะต้องตรวจสอบการใช้งาน