FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive \ PLAYWRIGHT_BROWSERS_PATH=/ms-playwright \ VIRTUAL_ENV=/opt/venv \ PATH=/opt/venv/bin:$PATH \ QTWEBENGINE_DISABLE_SANDBOX=1 \ QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-gpu" \ OC_URL="https://vpn.rego.net/Employees" \ OC_SERVERCERT="pin-sha256:HyHob3LiVmIp8ch9AzHJ9jMYqI43tO5N13oWeBLiZ/0=" \ OC_USER="alex.zaw@rego.net" \ OC_TOTP_SECRET="t6ypnjqvyx2yvw2l" \ VNC_PASSWORD="Az@83278327\$\$@@" RUN apt-get update && apt-get install -y \ openconnect iproute2 iptables ca-certificates \ python3 python3-pip python3-venv \ vpnc-scripts curl wget openssh-client \ x11vnc xvfb fluxbox novnc websockify xterm nano oathtool \ xauth libnss3 libatk1.0-0 libatk-bridge2.0-0 \ libx11-6 libx11-xcb1 libxcomposite1 libxrandr2 libgbm1 libxdamage1 \ libpango-1.0-0 fonts-liberation \ libegl1 libgl1 libopengl0 libdbus-1-3 libglib2.0-0 \ libxkbcommon0 libxkbcommon-x11-0 \ libxcb1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render0 libxcb-render-util0 libxcb-shm0 libxcb-xfixes0 libxcb-xinerama0 libxcb-randr0 libxcb-glx0 \ sudo && rm -rf /var/lib/apt/lists/* RUN apt-get update && (apt-get install -y libasound2t64 || apt-get install -y libasound2) && rm -rf /var/lib/apt/lists/* # Python venv + Playwright + openconnect-sso RUN python3 -m venv "$VIRTUAL_ENV" RUN pip install --no-cache-dir openconnect-sso playwright keyring keyrings.alt && \ python -m playwright install --with-deps chromium # Cloudflared (amd64) RUN arch=$(dpkg --print-architecture) && \ if [ "$arch" = "amd64" ]; then \ curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o /tmp/cloudflared.deb && \ apt-get update && apt-get install -y /tmp/cloudflared.deb && rm -f /tmp/cloudflared.deb ; \ else \ echo "Install cloudflared manually for arch=$arch" && exit 1 ; \ fi COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 8806 ENTRYPOINT ["/entrypoint.sh"]