MediaWikiの環境をdocker-composeで簡易的に構築する
環境情報
2019/12/12時点
- MacOS X 10.15.1(19B88)
- Docker 19.03.5
- MediaWiki 1.33.1
- MySQL 5.7.28
- 2019/12/12時点ではMySQLのコンテナは8.0.18が最新ですが、このバージョンだとMediaWikiの初期設定画面での操作でエラーが発生し正常に動作しなかったため、5.7.28のバージョンを利用しています。
docker-composeのディレクトリ構成
.
├── db
│ └── mysql
│ └── var_lib_mysql
├── mediawiki
│ └── images
└── docker-compose.yml
docker-compose.ymlの定義内容
version: '3'
services:
mediawiki:
container_name: wiki
image: mediawiki:latest
restart: always
ports:
- 80:80
volumes:
- ./mediawiki/images:/var/www/html/images
mysql:
container_name: db
image: mysql:5.7.28
environment:
#イメージの起動時に作成するデータベースの名前
MYSQL_DATABASE: my_wiki
#このユーザはMYSQL_DATABASE変数で指定されたデータベースに対してスーパーユーザとしての権限(GRANT ALL)を保持する
MYSQL_USER: mysqluser
#MYSQL_USERのパスワード
MYSQL_PASSWORD: mysqluser00
# MySQLにおけるスーパーユーザであるrootアカウントに設定するためのパスワード
MYSQL_ROOT_PASSWORD: mysqluser000
ports:
- "3306:3306"
volumes:
- ./db/mysql/var_lib_mysql:/var/lib/mysql
MediaWikiの初期設定をする
docker-compose up -d
で起動したあと、下記手順を実行してMediaWikiの初期設定を行います。
1. MediaWikiにアクセスする
にアクセスするとset up the wiki
というリンクのあるページが表示される。
2. set up the wikiリンクをクリックする
3. 言語の選択画面で続行ボタンを押下する
4. MediaWikiへようこそ!画面で続行ボタンを押下する
5. データベースに接続画面で以下の情報を入力して続行ボタンを押下する
- データベースのホスト
- mysql (docker-compose.ymlで定義したmysqlのコンテナ)
- データベース名
- my_wiki
- データベースのユーザー名
- mysqluser
- データベースのパスワード
- mysqluser00
6. データベースの設定画面で続行ボタンを押下する
7. 名前の画面で値を設定し、続行ボタンを押下する
8. インストールの画面で続行ボタンを押下する
9. インストールの確認画面で続行ボタンを押下する
10. LogalSettings.phpファイルのダウンロード
上記手順の続行ボタンを押下するとLocalSettings.phpファイルがダウンロードされるので、./mediawiki/
配下にダウンロードする。
.
├── db
│ └── mysql
│ └── var_lib_mysql
├── mediawiki
│ └── images
│ └── LocalSettings.php ← ここに配置
└── docker-compose.yml
11. 一度docker-compose down
を実行してコンテナを停止する
$ docker-compose down
12. docker-compose.ymlファイルにLocalSettings.phpのvolumes記述を追加する
version: '3'
services:
mediawiki:
container_name: wiki
image: mediawiki:latest
restart: always
ports:
- 80:80
volumes:
- ./mediawiki/images:/var/www/html/images
- ./mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php ← この行を追加
13. docker-compose up -d でコンテナを再度起動する
$ docker-compose up -d
14. MediaWikiに再度アクセスする
以上の手順でMediaWikiをdocker-composeで簡易的に構築することができました。
MySQLが最新版の8で動作しないことで、原因調査に時間がかかってしまった。。。