Сегодня продолжим работать с Docker и развернем MediaWiki с базой данных MySQL.
Начнем с конфигурации docker файла:
version: '3'
services:
MediaWiki:
container_name: wiki
image: mediawiki
restart: always
ports:
- 80:80
links:
- database
volumes:
- images:/var/www/html/images
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
database:
container_name: db
image: mysql
restart: always
environment:
MYSQL_DATABASE: mediawiki
MYSQL_USER: wiki
MYSQL_PASSWORD: P@ssw0rd
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
- dbvolume:/var/lib/mysql
volumes:
images:
dbvolume:
external: true
services — основной раздел, где мы будем создавать и описывать наши контейнеры docker. В данном примере сервиса два: MediaWiki - для приложения mediawiki и database - для базы данных;
container_name — имя, которое получит созданный контейнер;
image — имя образа, который будет использоваться для создания контейнера;
restart — поведения контейнера при падении;
ports (внешняя публикация). С помощью данной опции мы можем указывать, на каких портах должен слушать контейнер и на какие порты должны пробрасываться запросы
environment — задаем переменные окружения;
volumes - проброс папок;
links - ссылайтесь на контейнеры в другом сервисе. Укажите либо имя сервиса, либо псевдоним ссылки (SERVICE:ALIAS), либо просто имя сервиса.
Создадим раздел для нашей базы данных:
docker volume create dbvolume
Выполним сборку контейнеров:
docker-compose -f wiki.yml up -d
Проверим работу контейнеров:
В браузере открываем http://<внешний IP адрес машины> и производим настройку MediaWiki
Передадим скаченный файл на сервер:
scp LocalSettings.php altlinux@<адрес сервера>:~/
Изменим конфигурацию контейнера wiki на использование настроек с переданного файла:
Перезапустим контейнер:
docker-compose -f wiki.yml stop
docker-compose -f wiki.yml up -d
Входим в пользователя и видим что Вики успешно установлена:
Основной источник: ссылка