Deploy the Vision Client on Docker for a balena device

Hello everyone,

i'm trying to deploy the Ignition Vision Client on Docker as I would like to run the client on a balena device.

I tried but i get different errors. Is there any example on how to run in on Docker?

Thanks

I'm trying to launch manually launcher-vision-client-linux.jar and this is what we get:

INFO  [CompositeClassRejectListFilter] [2024/05/13 12:43:36]: Initialization performed successfully
INFO  [CompositeClassRejectListFilter] [2024/05/13 12:43:36]: JVM-wide ObjectInputFilter set up successfully
INFO  [CompositeClassRejectListFilter] [2024/05/13 12:43:36]: Platform serialFilter has 88 pattern(s)
INFO  [ClientLauncher                ] [2024/05/13 12:43:37]: Set initial logging level to INFO
May 13, 2024 12:43:37 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6c50245e'
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /root/.openjfx/cache/17.0.2-ea/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: /root/.openjfx/cache/17.0.2-ea/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:384)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:228)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:170)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
        at java.base/java.lang.Runtime.load0(Runtime.java:755)
        at java.base/java.lang.System.load(System.java:1953)
        at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:217)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:197)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:138)
        at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:54)
        at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:375)
        at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
        at java.base/java.lang.Thread.run(Thread.java:833)
ERROR [RuntimeException              ] [2024/05/13 12:43:37]: Uncaught exception in thread: main
java.lang.UnsupportedOperationException: Unable to open DISPLAY
        at com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(GtkApplication.java:181)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at com.sun.glass.ui.gtk.GtkApplication.<init>(GtkApplication.java:179)
        at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41)
        at com.sun.glass.ui.Application.run(Application.java:146)
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:291)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:293)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:163)
        at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:659)
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:679)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
        at java.base/java.lang.Thread.run(Thread.java:833)

You can't launch a Vision Client on Docker or in any headless environment. There's no GUI.

Hello Kevin i was thinking on running xserver on another container and use it as a UI for the Vision Client container.

Looks experimental and no longer maintained...

You're in uncharted territory here, I think. Keep chasing down the errors if it's something you really want to pursue.

Start here? It looks like you may be missing some additional system libraries.

1 Like

Thanks for your message Kevin!

I will keep you posted!

Kevin i just had the Ignition Client running here GitHub - mpous/ignition-visionclient-launcher-balena

Not sure if this is correct as i haven't tested this with Ignition but this is a first step!

2 Likes