MediaWiki-Docker

MediaWiki-Docker is a Docker based development environment included with MediaWiki core.

Example file
Below is a complete override file that provides a Redis and ElasticSearch containers, along with overriding the user mapping and the XDebug configuration for the app container.

Use MySQL instead of SQLite
The default configuration uses SQLite for the database backend, but you can use MySQL instead. These instruction assume a new installation (no LocalSettings.php).



To install the MediaWiki database tables, use:

Disable XDebug for better performance
If you are not working on backend code or don't need to set breakpoints, you can use a Docker image that has XDebug disabled, which can boost performance.



Mail handling
You can capture outgoing email with MailHog. The mail interface is accessible at http://localhost:8025/





ElasticSearch





 * Setup commands

EventLogging





 * Setup commands


 * 1) Clone the Extension:EventLogging extension into
 * 2) You can tail the output to the   container with , or, pipe it to   with
 * 3) For client-side logging to work properly, you need to modify your system's  file with an entry that looks like this:

Ngrok
You can use ngrok to share your local site with others. After installing, run. Whatever URL is shown to you needs to be set in your.



Performance profiling with XHProf
You can use XHProf to profile requests.

TODO: Adapt something from https://github.com/perftools/xhgui/blob/master/docker-compose.yml



VS Code
To debug PHP code in VS Code, do the following:


 * 1) In VS Code, install the PHP Debug extension
 * 2) Open the MediaWiki codebase in VS Code. Go to the Run tab (play button with a little bug), click "create a launch.json file" and select PHP as the environment. (If you already have a launch.json file, select "add configuration" from the dropdown.) Add the following to the file:
 * 3) Set your Xdebug browser extension of choice to listen for the debugger. In the MediaWiki codebase, place a breakpoint in the PHP code you'd like to step through. Visit your local site in the browser and, if the breakpoint is placed on a line of code that's run, the debugger will pause on that line and allow you to step through the code.

Notes:
 * 1) If the debugger stops on errors or exceptions unexpectedly, in VS Code, uncheck "Everything" in the Breakpoints window within the Run tab.
 * 2) This won't work for extension codebases opened in VS Code; you must run the debugger from the MediaWiki core codebase (but you can place breakpoints in extension code there).