70 lines
1.8 KiB
Docker
70 lines
1.8 KiB
Docker
FROM ubuntu
|
|
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y --no-install-recommends\
|
|
bash \
|
|
sudo \
|
|
git \
|
|
procps
|
|
|
|
RUN mkdir -p /opt/noVNC
|
|
|
|
RUN adduser --home /home/novnc --shell /bin/bash --system --disabled-password novnc \
|
|
&& echo "novnc ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
|
|
|
# X11 and xfce
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y --no-install-recommends\
|
|
xvfb xauth dbus-x11 xfce4 xfce4-terminal \
|
|
x11-xserver-utils
|
|
|
|
# VNC
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y --no-install-recommends\
|
|
python3 python3-pip \
|
|
tigervnc-standalone-server tigervnc-common \
|
|
openssl \
|
|
&& pip3 install numpy
|
|
|
|
# NoVNC
|
|
RUN git clone --single-branch https://github.com/novnc/noVNC.git /opt/noVNC \
|
|
&& git clone --single-branch https://github.com/novnc/websockify.git /opt/noVNC/utils/websockify \
|
|
&& ln -s /opt/noVNC/vnc.html /opt/noVNC/index.html
|
|
|
|
RUN openssl req -batch -new -x509 -days 365 -nodes -out self.pem -keyout /opt/noVNC/utils/websockify/self.pem
|
|
|
|
|
|
# Audio
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y --no-install-recommends\
|
|
pulseaudio \
|
|
pavucontrol \
|
|
ucspi-tcp \
|
|
gstreamer1.0-plugins-good \
|
|
gstreamer1.0-pulseaudio \
|
|
gstreamer1.0-tools
|
|
|
|
COPY pulse/ /etc/pulse
|
|
COPY novnc /opt/noVNC/
|
|
RUN sed -i "/import RFB/a \
|
|
import '../webaudio.js'" \
|
|
/opt/noVNC/app/ui.js
|
|
|
|
# Extra applications
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y --no-install-recommends\
|
|
firefox neovim
|
|
|
|
COPY entrypoint.sh /opt/noVNC/entrypoint.sh
|
|
|
|
ENTRYPOINT ["/opt/noVNC/entrypoint.sh"]
|
|
EXPOSE 8080
|
|
|
|
USER novnc
|
|
WORKDIR /home/novnc
|