FROM ubuntu:22.04 # Set non-interactive frontend to avoid prompts ENV DEBIAN_FRONTEND=noninteractive # Install OpenShot and dependencies, including XCB libs and Xvfb RUN apt-get update && apt-get install -y \ openshot-qt \ python3-pyqt5 \ python3-pip \ libx11-6 \ libxrender1 \ libgl1-mesa-glx \ libpulse0 \ xvfb \ libx11-xcb1 \ libxcb1 \ libxcomposite1 \ libxcursor1 \ libxdamage1 \ libxext6 \ libxfixes3 \ libxi6 \ libxrandr2 \ libxss1 \ libxtst6 \ libxcb-xinerama0 \ libxcb-xinput0 \ libxcb-keysyms1 \ libxcb-cursor0 \ libxcb-util1 \ libxkbcommon-x11-0 \ && rm -rf /var/lib/apt/lists/* # Create a non-root user and set up home directory RUN useradd -m -s /bin/bash openshotuser && \ chown -R openshotuser:openshotuser /home/openshotuser # Switch to non-root user USER openshotuser # Set home directory environment variable ENV HOME=/home/openshotuser # Ensure OpenShot's configuration directory is writable RUN mkdir -p /home/openshotuser/.openshot_qt && \ chmod -R 755 /home/openshotuser/.openshot_qt # Ensure Python can find OpenShot modules ENV PYTHONPATH=/usr/lib/python3/dist-packages:/usr/lib/python3/dist-packages/openshot_qt # Run OpenShot with Xvfb for headless virtual display CMD ["xvfb-run", "-a", "openshot-qt"]