# syntax=docker/dockerfile:1
FROM jayfield/debian-baseimage as base

ENV PASSWORD=vnc4me

# Build tools
RUN apt-get update && \
    apt-get -y install --no-install-recommends dbus-x11 x11-xkb-utils xkb-data xauth && \
    apt-get -y install --no-install-recommends make gcc build-essential && \
    apt-get -y install --no-install-recommends python3 python3-numpy && \
    apt-get -y install --no-install-recommends fluxbox && \
    apt-get -y install --no-install-recommends openssl && \
    rm -rf /var/lib/apt/lists/*

FROM base as build
ADD https://github.com/TurboVNC/turbovnc/releases/download/3.1.1/turbovnc_3.1.1_amd64.deb /tmp/
ADD https://github.com/novnc/websockify.git /tmp/websockify
ADD https://github.com/novnc/noVNC.git /tmp/noVNC

WORKDIR "/tmp"
RUN dpkg -i turbovnc_3.1.1_amd64.deb

WORKDIR "/tmp/websockify"
RUN make -j4

ENV PATH=$PATH:/opt/TurboVNC/bin
RUN	mkdir ~/.vnc/
RUN	echo $PASSWORD | vncpasswd -f > ~/.vnc/passwd
RUN	chmod 0600 ~/.vnc/passwd

COPY conf/xstartup.turbovnc /etc/
COPY conf/turbovncserver-security.conf /etc/
COPY conf/turbovncserver.conf /etc/

RUN	chmod 0600 /etc/turbovncserver-security.conf

# see also
# https://github.com/ich777/docker-novnc-baseimage

# and:
# 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
# https://github.com/mviereck/x11docker/wiki/How-to-access-X-over-TCP-IP-network
# https://jaydenm.com/blog/docker-x11-desktop/
# https://github.com/karinepires/docker-secure-vncserver/blob/master/Dockerfile
# https://github.com/theonemule/docker-opengl-turbovnc/blob/master/dockerfile

# MESA
# https://docs.mesa3d.org/install.html
