Trying to reproduce a CI Selenium failure locally, I ran Quibble under docker. Many Selenium tests failed with login errors. Inspecting the screenshots and debug logs, I found that MW was trying to store sessions in memcached, but memcached was not running, leading to a "session loss" error.
I was following the instructions at https://doc.wikimedia.org/quibble/ but it didn't have the critical detail: the default entrypoint in the quibble docker images is now broken, and it's necessary to override it with --entrypoint=quibble-with-supervisord. Then supervisord will start memcached.
I don't understand why supervisord is needed at all. Quibble has its backend.py and does a reasonable job of managing MySQL and Chrome. Why not add memcached, php-fpm and Apache there?
Pretty much as soon as I manually started memcached, I hit a bug due to sharing of memcached data between one run and another. Memcached needs to have the same lifetime as MySQL.
It would be convenient for users of Quibble if it worked as documented and didn't require external services.