Files
selenoid-images/selenium/external-host/entrypoint.sh
T
2022-05-17 01:56:44 +03:00

52 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
SCREEN_RESOLUTION=${SCREEN_RESOLUTION:-"1920x1080x24"}
DISPLAY_NUM=99
URLS=${URLS:-'["http://172.17.0.1:4444/"]'}
VNC_PASSWORD=${VNC_PASSWORD:-"password"}
export URLS
export VNC_PASSWORD
export DISPLAY=":$DISPLAY_NUM"
clean() {
if [ -n "$XVFB_PID" ]; then
kill -TERM "$XVFB_PID"
fi
if [ -n "$X11VNC_PID" ]; then
kill -TERM "$X11VNC_PID"
fi
if [ -n "$RPROXY_PID" ]; then
kill -TERM "$RPROXY_PID"
fi
}
trap clean SIGINT SIGTERM
URL=$(choose $URL)
HOST=$(echo $URL | sed -e 's@\(.*\)://@@' -e 's@[:/]\(.*\)$@@')
/bin/bash -c 'echo -e "$VNC_PASSWORD\n$VNC_PASSWORD\nn\n" | vncpasswd file.passwd'>/dev/null
xvfb-run -l -n $DISPLAY_NUM -s "-ac -screen 0 $SCREEN_RESOLUTION -noreset -listen tcp" \
vncviewer passwd=file.passwd $HOST &
XVFB_PID=$!
retcode=1
until [ $retcode -eq 0 ]; do
xdpyinfo -display $DISPLAY >/dev/null 2>&1
retcode=$?
if [ $retcode -ne 0 ]; then
echo Waiting xvfb...
sleep 1
fi
done
x11vnc -display $DISPLAY -passwd selenoid -shared -forever -loop500 -rfbport 5900 -rfbportv6 5900 -logfile /dev/null &
X11VNC_PID=$!
rproxy $URL &
RPROXY_PID=$!
wait