Error when running Docker image remotely

Typically: "How do I... ", "How can I... " questions
Post Reply
SilviaZ
Posts: 2
Joined: 03 Feb 2021, 19:32

Error when running Docker image remotely

Post by SilviaZ »

Hello,

I'm trying to run a Docker image of a custom V-REP (version 3.5.0) scene in a Microsoft Azure virtual machine, but I always get an error signal 11.

In this virtual machine I have:
  • OS Ubuntu 18.04
  • NVIDIA driver 460.32.03 and CUDA version 11.2
  • Docker version 20.10.2
  • OpenGL version string: 1.4 (4.6.0 - Build 26.20.100.7325)
I'm working on a Windows 10 host, so I installed an X server and PuTTY to ssh into the virtual machine.

When I run the following command:

Code: Select all

docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/home/silviaRL/.Xauthority:/root/.Xauthority:rw" --runtime=nvidia --net=host vrep_ee_camera-reach
I get the error:

Code: Select all

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Using the default Lua library.
Add-on script 'vrepAddOnScript-addOnScriptDemo.lua' was loaded.
Simulator launched.
Plugin 'MeshCalc': loading...
Plugin 'MeshCalc': load succeeded.
Plugin 'BlueZero': loading...
Plugin 'BlueZero': warning: replaced variable 'simB0'
Plugin 'BlueZero': load succeeded.
Plugin 'BubbleRob': loading...
Plugin 'BubbleRob': load succeeded.
Plugin 'Bwf': loading...
Plugin 'Bwf': load succeeded.
Plugin 'Collada': loading...
V-REP runs in headless mode. Cannot start 'Collada' plugin.
Error with plugin 'Collada': load failed (failed initialization).
Plugin 'ConvexDecompose': loading...
Plugin 'ConvexDecompose': load succeeded.
Plugin 'CustomUI': loading...
Initialization failed, running in headless mode. Cannot start 'CustomUI' plugin.
Error with plugin 'CustomUI': load failed (failed initialization).
Plugin 'DynamicsBullet-2-78': loading...
Plugin 'DynamicsBullet-2-78': load succeeded.
Plugin 'DynamicsBullet-2-83': loading...
Plugin 'DynamicsBullet-2-83': load succeeded.
Plugin 'DynamicsNewton': loading...
Plugin 'DynamicsNewton': load succeeded.
Plugin 'DynamicsOde': loading...
Plugin 'DynamicsOde': load succeeded.
Plugin 'DynamicsVortex': loading...
Plugin 'DynamicsVortex': load succeeded.
Plugin 'ExternalRenderer': loading...
Plugin 'ExternalRenderer': load succeeded.
Plugin 'ICP': loading...
Plugin 'ICP': warning: replaced variable 'simICP'
Plugin 'ICP': load succeeded.
Plugin 'Image': loading...
Error with plugin 'Image': load failed (could not load). The plugin probably couldn't load dependency libraries. For additional infos, modify t                         he script 'libLoadErrorCheck.sh', run it and inspect the output.
Plugin 'K3': loading...
Plugin 'K3': load succeeded.
Plugin 'LuaCommander': loading...
LuaCommander: cannot find the statusbar widget
Error with plugin 'LuaCommander': load failed (failed initialization).
Plugin 'LuaRemoteApiClient': loading...
Plugin 'LuaRemoteApiClient': load succeeded.
Plugin 'Mtb': loading...
Plugin 'Mtb': load succeeded.
Plugin 'OMPL': loading...
Plugin 'OMPL': warning: replaced variable 'simOMPL'
Plugin 'OMPL': load succeeded.
Plugin 'OpenMesh': loading...
Plugin 'OpenMesh': load succeeded.
Plugin 'PovRay': loading...
Plugin 'PovRay': load succeeded.
Plugin 'Qhull': loading...
Plugin 'Qhull': load succeeded.
Plugin 'RRS1': loading...
Plugin 'RRS1': load succeeded.
Plugin 'ReflexxesTypeII': loading...
Plugin 'ReflexxesTypeII': load succeeded.
Plugin 'RemoteApi': loading...
Starting a remote API server on port 19997
Plugin 'RemoteApi': load succeeded.
Plugin 'RosInterface': loading...
Error with plugin 'RosInterface': load failed (could not load). The plugin probably couldn't load dependency libraries. For additional infos, m                         odify the script 'libLoadErrorCheck.sh', run it and inspect the output.
Plugin 'SDF': loading...
Plugin 'SDF': warning: replaced variable 'simSDF'
Plugin 'SDF': load succeeded.
Plugin 'SurfaceReconstruction': loading...
Plugin 'SurfaceReconstruction': warning: replaced variable 'simSurfRec'
Plugin 'SurfaceReconstruction': load succeeded.
Plugin 'Urdf': loading...
V-REP runs in headless mode. Cannot start 'Urdf' plugin.
Error with plugin 'Urdf': load failed (failed initialization).
Plugin 'Vision': loading...
Plugin 'Vision': load succeeded.
Using the 'MeshCalc' plugin.
Initializing the Bullet physics engine in plugin 'DynamicsBullet_2_78'...
Engine version: 2.78
Plugin version: 10
Initialization successful.
Error: signal 11:
/app/V-REP/libv_rep.so(_Z11_segHandleri+0x28)[0x7ff6052340c8]
/lib/x86_64-linux-gnu/libc.so.6(+0x354c0)[0x7ff6092b44c0]
/lib/x86_64-linux-gnu/libc.so.6(+0x3f8a4)[0x7ff6092be8a4]
/app/V-REP/libv_rep.so(_ZN6oglExt15_isFboAvailableERb+0x1d)[0x7ff605433a4d]
/app/V-REP/libv_rep.so(_ZN6oglExt25prepareExtensionFunctionsEb+0x1a)[0x7ff605433ada]
/app/V-REP/libv_rep.so(_Z15initGl_ifNeededv+0x59)[0x7ff6053db769]
/app/V-REP/libv_rep.so(_ZN19COffscreenGlContextC1EiiiP9QGLWidgetii+0x8b)[0x7ff60542933b]
/app/V-REP/libv_rep.so(_ZN20CVisionSensorGlStuffC1EiiibP9QGLWidgetbbii+0x74)[0x7ff60542a0c4]
/app/V-REP/libv_rep.so(_ZN13CVisionSensor45createGlContextAndFboAndTextureObjectIfNeededEb+0x153)[0x7ff605101083]
/app/V-REP/libv_rep.so(_ZN13CVisionSensor13detectEntity2Eibbbbb+0x1f9)[0x7ff6051012e9]
QMutex: destroying locked mutex
so it looks like the simulator is initialized, but the vision sensors I have in the scene may cause some problems (although my image is run in headless mode and I do have OpenGL).

An even stranger thing is that if I install the same V-REP version app directly in the virtual machine, and I open my scene in headless mode, then no error occurs.
I thought that maybe my Dockerfile does not install all the needed packages, but I wouldn't know which others to add. Anyway, I post also this file for the sake of clarity

Code: Select all

FROM nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04

WORKDIR /app

RUN apt-get -y update && apt-get -y install libglib2.0-0 \
libpng12-0 libgl1-mesa-dev libqscintilla2-dev liblua5.1-0-dev libqt5serialport5-dev libqt5opengl5-dev mesa-utils libgl1-mesa-glx wget xvfb \
libgl1-mesa-dri libglapi-mesa libglu1-mesa libglu1-mesa-dev

ENV NVIDIA_VISIBLE_DEVICES \
  ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
  ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

RUN mkdir -p /app/ \
&& wget -SL http://coppeliarobotics.com/files/V-REP_PRO_EDU_V3_5_0_Linux.tar.gz \
&& tar -xzf /app/V-REP_PRO_EDU_V3_5_0_Linux.tar.gz -C /app/ \
&& mv /app/V-REP_PRO_EDU_V3_5_0_Linux /app/V-REP \
&& rm /app/V-REP_PRO_EDU_V3_5_0_Linux.tar.gz

EXPOSE 80
EXPOSE 19996
EXPOSE 19997
EXPOSE 19998
EXPOSE 19999

ADD dVRK-oneArm-reach-camera.ttt /app/scene.ttt
Do any of you have any idea on how to solve the problem or debug it in order to understand its origin?

Many thanks in advance!

Silvia

coppelia
Site Admin
Posts: 10375
Joined: 14 Dec 2012, 00:25

Re: Error when running Docker image remotely

Post by coppelia »

Edit: make sure to also read this topic about headless mode.

Hello Silvia,

can you try with CoppeliaSim's docker image?

Cheers

SilviaZ
Posts: 2
Joined: 03 Feb 2021, 19:32

Re: Error when running Docker image remotely

Post by SilviaZ »

Thank you very much!

I just had to make some changes in the Dockerfile of CoppeliaSim image in order to add my custom image, and than it worked.

Many thanks again,

Silvia

Post Reply