To run wrap cmd directly from terminal you can use this massive command.
docker run --mount 'type=volume,volume-driver=local,dst=/nfs/common,volume-opt=type=nfs,volume-opt=device=:/Public,"volume-opt=o=addr=192.168.0.3,vers=4,hard,timeo=600,rsize=1048576,wsize=1048576,retrans=2"' -e WRAP4DCMD_COMMON_DIR=/nfs/common -e [email protected] -e XDG_RUNTIME_DIR=/tmp/runtime-root -i --entrypoint /usr/bin/xvfb-run debug-r3dsnode:2022.6.1 -s '+extension GLX +render' '/opt/R3DS/Node/WrapCmd.sh' compute -s $start_frame -e $end_frame /nfs/common/WrapProjects/opengl.wrap
Let's see what is going on step-by-step.
In our office we use nfs to storage all the data in "Public" directory, which connected to all nodes. You can create custom docker volume or use this flag.
--mount \
'type=volume, \
volume-driver=local, \
dst=/nfs/common, \
volume-opt=type=nfs, \
volume-opt=device=:/Public, \
"volume-opt=o=addr=nfs_ip,vers=4,hard,timeo=600,rsize=1048576,wsize=1048576,retrans=2"'
--mount " \
'type=volume,target=/nfs/common, \
volume-driver=local, \
volume-opt=type=cifs, \
volume-opt=device=//nfs_ip/Public, \
\"volume-opt=o=addr=nfs_ip, \
username=user,password=password, \
file_mode=0777,dir_mode=0777\"'\
Only last variable is required all of other variables are optional and can be configured manually if you are using Rush.
-e WRAP4DCMD_GALLERY_DIR=/gallery_path \
-e WRAP4DCMD_COMMON_DIR=/common_dir_path \
-e WRAP4DCMD_LICENSE=7307@lic_server_ip \
-e RUSH_ADDRESS=http://rush_address:7308 \
-e XDG_RUNTIME_DIR=/tmp/runtime-root -i \
This entrypoint creates opengl context before wrap have been started.
--entrypoint /usr/bin/xvfb-run debug-r3dsnode:2022.6.1 -s '+extension GLX +render' \
'/opt/R3DS/Node/WrapCmd.sh' compute -s $start_frame -e $end_frame /nfs/common/WrapProjects/opengl.wrap
Here it's just WrapCmd command in the format:
$wrap_cmd_path compute {-s $start_frame -e $end_frame} $wrap_project_path