diff --git a/novnc/Dockerfile b/novnc/Dockerfile new file mode 100644 index 0000000..a6d1f3a --- /dev/null +++ b/novnc/Dockerfile @@ -0,0 +1,49 @@ +# syntax = docker/dockerfile:1 +FROM alpine/base +USER root + +# ENV variables +# Required +ENV MYVNC_VNCCLIENT_HOST= +ENV MYVNC_VNCCLIENT_PORT= +# Optional +ENV MYVNC_VNCSERVER_PORT= + +# Run +RUN apk add --no-cache \ + openssh-client \ + && <<- '01-init' cat >>/app/init.d/01-init.sh + +# Check for client variables +if ! [ ${MYVNC_VNCCLIENT_HOST} ] +then + echo "Variable MYVNC_VNCCLIENT_HOST is missing." + echo "Exiting..." + exit 1 +fi +if ! [ ${MYVNC_VNCCLIENT_PORT} ] +then + echo "Variable MYVNC_VNCCLIENT_PORT is missing." + echo "Exiting..." + exit 1 +fi +if ! [[ ${MYVNC_VNCCLIENT_PORT} =~ ^[0-9]+$ ]] +then + echo "Variable MYVNC_VNCCLIENT_PORT is invalid." + echo "Exiting..." + exit 1 +fi + +# Read ssh client variables hostname and port (5900, 5901, 5902, etc) +if ssh ${MYVNC_VNCCLIENT_HOST} exit +then + ssh ${MYVNC_VNCCLIENT_HOST} -L ${MYVNC_VNCSERVER_PORT:-5900}:localhost:${MYVNC_VNCCLIENT_PORT} & +else + echo "Unable to establish SSH tunnel." + echo "Exiting..." + exit 1 +fi +01-init + +# Reset user home directory +USER user \ No newline at end of file