Fixed container restart
This commit is contained in:
+5
-2
@@ -34,15 +34,18 @@ RUN chmod 0600 ~/.vnc/passwd
|
||||
|
||||
EXPOSE 5900
|
||||
|
||||
COPY vnc/xstartup.turbovnc /root/.vnc/
|
||||
COPY vnc/xstartup.turbovnc /etc/
|
||||
COPY vnc/turbovncserver-security.conf /etc/
|
||||
RUN chmod 0600 /etc/turbovncserver-security.conf
|
||||
COPY vnc/turbovncserver.conf /etc/
|
||||
COPY app/*.sh /app/
|
||||
|
||||
RUN openssl req -x509 -nodes -newkey rsa:2048 -keyout /tmp/novnc.key -out /tmp/novnc.pem -days 3650 -subj "/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY emailAddress=email@example.com"
|
||||
ENV DISPLAY_NUM=99
|
||||
ENV DISPLAY=:${DISPLAY_NUM}
|
||||
RUN touch /root/.Xauthority
|
||||
|
||||
CMD ["/app/app.sh"]
|
||||
ENTRYPOINT ["/app/app.sh"]
|
||||
|
||||
# https://dunedlin.wordpress.com/2020/10/24/a-minimal-x11-install/
|
||||
# https://askubuntu.com/questions/1313445/how-do-i-install-vnc-on-a-headless-ubuntu-20-10
|
||||
|
||||
+15
-9
@@ -1,11 +1,17 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -x
|
||||
|
||||
export DISPLAY=:${DISPLAY_NUM}
|
||||
RFB_PORT=59${DISPLAY_NUM}
|
||||
NOVNC_PORT=80${DISPLAY_NUM}
|
||||
source /app/signals.sh
|
||||
|
||||
echo Display at ${DISPLAY} with ${SCREEN_W}x${SCREEN_H}x24
|
||||
exec icewm-session -o /var/log/icewm.log &
|
||||
exec /opt/TurboVNC/bin/Xvnc ${DISPLAY} -geometry ${SCREEN_W}x${SCREEN_H} -depth 24 +xinerama -securitytypes none >/var/log/xvfb.log &
|
||||
exec socat TCP-LISTEN:60${DISPLAY_NUM},fork,bind=0.0.0.0 UNIX-CONNECT:/tmp/.X11-unix/X${DISPLAY_NUM} &
|
||||
exec /tmp/websockify/run --web=/tmp/noVNC/ --cert=/tmp/novnc.pem --key=/tmp/novnc.key ${NOVNC_PORT} localhost:${RFB_PORT}
|
||||
signals_trap_with_arg func_trap TERM
|
||||
|
||||
/app/server.sh &
|
||||
PID=-1
|
||||
|
||||
# wait forever
|
||||
while true
|
||||
do
|
||||
tail -f /dev/null & wait ${!}
|
||||
done
|
||||
|
||||
# https://medium.com/@gchudnov/trapping-signals-in-docker-containers-7a57fdda7d86
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
set -x
|
||||
|
||||
RFB_PORT=59${DISPLAY_NUM}
|
||||
NOVNC_PORT=80${DISPLAY_NUM}
|
||||
|
||||
echo Display at ${DISPLAY} with ${SCREEN_W}x${SCREEN_H}x24
|
||||
/opt/TurboVNC/bin/Xvnc ${DISPLAY} -geometry ${SCREEN_W}x${SCREEN_H} -depth 24 +xinerama -securitytypes none >/var/log/xvfb.log &
|
||||
icewm-session -o /var/log/icewm.log &
|
||||
/tmp/websockify/run -D --web=/tmp/noVNC/ --cert=/tmp/novnc.pem --key=/tmp/novnc.key ${NOVNC_PORT} localhost:${RFB_PORT}
|
||||
socat TCP-LISTEN:60${DISPLAY_NUM},fork,bind=0.0.0.0 UNIX-CONNECT:/tmp/.X11-unix/X${DISPLAY_NUM}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
PID=0
|
||||
|
||||
signals_trap_with_arg() {
|
||||
func="$1" ; shift
|
||||
for sig ; do
|
||||
echo "$func $sig"
|
||||
trap "$func $sig" "$sig"
|
||||
done
|
||||
}
|
||||
|
||||
func_trap() {
|
||||
echo "Trapped: $1"
|
||||
echo "Killing ${PID}"
|
||||
if [ ${PID} -ne 0 ]; then
|
||||
kill -SIGTERM "${PID}"
|
||||
wait "${PID}"
|
||||
fi
|
||||
ps -ef --forest
|
||||
|
||||
exit 143
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
#/bin/bash
|
||||
|
||||
DISPLAY_NUM=99
|
||||
docker run --rm --net bridge -p 5910:59${DISPLAY_NUM}/tcp -e DISPLAY_NUM=${DISPLAY_NUM} -e SCREEN_W=1536 -e SCREEN_H=960 -it $1
|
||||
docker run --rm --net bridge -p 5910:59${DISPLAY_NUM}/tcp -e DISPLAY_NUM=${DISPLAY_NUM} -e SCREEN_W=1536 -e SCREEN_H=960 -it $1 bash --login
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
trap_with_arg() {
|
||||
func="$1" ; shift
|
||||
for sig ; do
|
||||
echo "$func $sig"
|
||||
trap "$func $sig" "$sig"
|
||||
done
|
||||
}
|
||||
|
||||
func_trap() {
|
||||
echo "Trapped: $1"
|
||||
echo "Killing ${PID}"
|
||||
kill -9 -${PID}
|
||||
}
|
||||
|
||||
trap_with_arg func_trap EXIT TERM HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM
|
||||
./parent.sh &
|
||||
PID=$$
|
||||
echo "Pid = $PID"
|
||||
|
||||
sleep 10
|
||||
@@ -3,9 +3,10 @@
|
||||
unset SESSION_MANAGER
|
||||
unset DBUS_SESSION_BUS_ADDRESS
|
||||
XDG_SESSION_TYPE=x11; export XDG_SESSION_TYPE
|
||||
/usr/bin/icewm-session&
|
||||
|
||||
# Do NOT use 3D unity on Ubuntu 16.10
|
||||
export TVNC_WM=2d
|
||||
|
||||
# Start the window manager under VGL so that we always get acceleration
|
||||
export TVNC_VGL=1
|
||||
export TVNC_VGL=0
|
||||
|
||||
Reference in New Issue
Block a user