I had difficulties running the Docker image universalrobots/ursim_e-series
. At the end I solved the problem by increasing the number of maximum open file descriptors. Here I share my logs that may help others. I have also some improvement ideas.
First I manually started the container using:
docker run --rm -it -p 30004:30004 -p 5900:5900 -p 6080:6080 --entrypoint /bin/bash universalrobots/ursim_e-series
Then activated messages to stdout by removing the redirections in /entrypoint.sh
and putting set -x
to see all shell commands which were executed, also in the scripts which were called by the entrypoint script. Then I got the following logs for /entrypoint.sh
URControl: no process found
Checking Robot Root Certificate
readlink: missing operand
Try 'readlink --help' for more information.
dirname: missing operand
Try 'dirname --help' for more information.
/ursim/ursim-certificate-check.sh: line 19: keytool: command not found
Installing ur_robot_root_certificate into Java keystore
/ursim/ursim-certificate-check.sh: line 6: keytool: command not found
+ pushd GUI
~/GUI ~ /
+ HOME=/ursim
+ java -Duser.home=/ursim -Dconfig.path=/ursim/.urcontrol -DmockCybersecurityBackend=true -Djava.library.path=/usr/lib/jni -jar bin/felix.jar
library initialization failed - unable to allocate file descriptor table - out of memory/ursim/start-ursim.sh: line 50: 70 Aborted (core dumped) HOME=$URSIM_ROOT java -Duser.home=$URSIM_ROOT -Dconfig.path=$URSIM_ROOT/.urcontrol -DmockCybersecurityBackend=true -Djava.library.path=/usr/lib/jni -jar bin/*.jar
+ popd
~ /
+ rm -f /ursim/.urcontrol/urcontrol.conf
+ rm -f /ursim/ur-serial
+ rm -f /ursim/.urcontrol/safety.conf
+ rm -f /ursim/programs
+ popd
- The certificate related readlink errors made debugging more difficult. Providing meaningful error messages or using
readlink
only if the file really exists would be better. - I changed the limits using the solution here: apache kafka - Docker - library initialization failed - unable to allocate file descriptor table - out of memory - Stack Overflow