A Docker environment for running CSFML graphical applications with a virtual display (Xvfb) and browser-based VNC access via noVNC.
This tool is primarily useful for cross-platform compatibility testing, especially if you're developing on macOS and need to verify that your CSFML application works correctly on Linux. For regular development, use your native environment instead.
Warning
Performance: Expect noticeable lag due to multiple abstraction layers (Docker → Xvfb → VNC → noVNC). This is not suitable for regular development or testing.
Note
CSFML Errors: You may encounter CSFML-related warnings or errors in the console. Most of these can be safely ignored as they don't affect basic functionality.
Important
Use Case: Only use this environment occasionally to verify cross-OS compatibility, not as your primary development setup.
./build.shdocker run -it \
-p 5900:5900 \
-p 6080:6080 \
-v "$(pwd):$(pwd)" \
-w "$(pwd)" \
--rm \
--platform linux/amd64 \
epitest-graphicOpen your browser and navigate to:
http://localhost:6080/vnc.html
Your application will start automatically in the noVNC interface.
- Xvfb creates a virtual framebuffer (fake display)
- fluxbox provides a minimal window manager
- x11vnc exposes the virtual display via VNC protocol
- noVNC translates VNC to WebSocket for browser access
- supervisord manages all these services