FROM kasmweb/ubuntu-jammy-desktop:develop ENV KASMVNC_BUILD_OS ubuntu ENV KASMVNC_BUILD_OS_CODENAME jammy ENV XORG_VER 21.1.3 ENV XORG_PATCH 21 ENV DEBIAN_FRONTEND noninteractive EXPOSE 6901 EXPOSE 22 USER root COPY builder/conf/nginx_kasm.conf /etc/nginx/conf.d/ RUN sed -i 's$# deb-src$deb-src$' /etc/apt/sources.list && \ apt update && \ apt install -y \ ninja-build \ gdb \ valgrind \ rsync \ dos2unix \ socat \ sudo \ libxfont-dev \ cmake \ nasm \ git \ libgnutls28-dev \ vim \ wget \ tightvncserver \ curl \ libpng-dev \ libtiff-dev \ libgif-dev \ libavformat-dev \ libavcodec-dev \ libswscale-dev \ libssl-dev \ libxrandr-dev \ libxcursor-dev \ pkg-config \ libfreetype6-dev \ libxtst-dev \ autoconf \ automake \ libtool \ xutils-dev \ libpixman-1-dev \ libxshmfence-dev \ libxcvt-dev \ libxkbfile-dev \ x11proto-dev \ libgbm-dev \ htop \ libva-dev \ libdrm-dev \ libpam0g-dev \ libbsd-dev \ openssh-server \ inotify-tools \ libgl1-mesa-dev \ libglu1-mesa-dev \ mesa-common-dev RUN echo "kasm-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \ mkdir -p /var/run/sshd && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - RUN apt install -y nodejs nginx # x86_64 specific operations # Packages required for VA-API hardware acceleration (Mesa + Intel) RUN if [ "$(arch)" = "x86_64" ]; then \ apt-get update && apt-get install -y vainfo mesa-va-drivers mesa-vulkan-drivers \ intel-media-va-driver-non-free; \ fi ENV SCRIPTS_DIR=/tmp/scripts COPY builder/scripts $SCRIPTS_DIR RUN $SCRIPTS_DIR/build-deps.sh RUN ssh-keygen -A RUN echo "kasm-user:password" | chpasswd USER 1000 RUN mkdir ~/.vnc RUN openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ${HOME}/.vnc/self.pem -out ${HOME}/.vnc/self.pem -subj "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=kasm/emailAddress=none@none.none" WORKDIR /src ENTRYPOINT ["/bin/bash", "-c", "sudo /usr/sbin/sshd && exec /bin/bash"]