MediaWiki в Docker

Иногда возникает необходимость создания своей частной wiki на своём сервере. И в этом нет ничего сложного, так как движок находится в открытом доступе и использовать его можно даже в Docker.

MediaWiki — вики-движок, написанный специально для Википедии, используется во многих других проектах фонда Викимедиа, а также частных и государственных организациях. Является свободным ПО и распространяется на условиях общественной лицензии GNU.

Предполагается, что у вас уже имеется контейнер с СУБД MySQL.

Для начала установим и запустим контейнер Mediawiki:

# sudo docker run --name wiki -d --link dbserver:db -p 8086:80 mediawiki

Сервис должен появиться на 8086 порту. Настроим подключение к базе данных и базовые настройки:

В качестве хоста БД указываем «db«:

По каким-то причинам разработчики не стали давать возможность инсталлятору самому создать файл конфигурации, поэтому после окончания процесса настроек автоматически будет скачан файл LocalSettings.php, который необходимо будет подгрузить в контейнер.

Для запрета самостоятельной регистрации пользователей добавляем в файл конфигурации следующую строку:

$wgGroupPermissions['*']['createaccount'] = false;

Для запрета редактирования страниц всем анонимным пользователям:

$wgGroupPermissions['*']['edit'] = false;

А для разрешения загрузки файлов устанавливаем значение параметра $wgEnableUploads в true:

$wgEnableUploads = true;

Удаляем контейнер с wiki. Теперь создаём новый контейнер, но при этом необходимо пробросить файл конфигурации внутрь него. А также создадим том, в который будут загружаться изображения.

# sudo docker run --name wiki -d --link dbserver:db -v wiki_images:/var/www/html/images -v /home/user/LocalSettings.php:/var/www/html/LocalSettings.php -p 8086:80 mediawiki

Если всё сделано правильно, то мы должны увидеть заглавную страницу wiki: