7億円当てるまで書き続けるブログ

石油王のみなさーん! お知恵拝借!

MacにDockerいれてMediawikiいれたときのメモ

ひっさしぶりにブログ見てみたら300億円くらい当たっててびっくりしました。当たってません。

以下、いつも使ってるMacにDockerを導入してからブラウザでMediawikiを開くまでの、ただのメモです。

Dockerインストール

https://docs.docker.com/engine/installation/mac/docs.docker.com

これ見ると良いと思う。

Docker Toolbox

Docker Toolboxをダウンロードしていんすこ。

このDocker ToolboxにはBoot2Dockerのイメージとか、それを動かすためのVirtual Boxとか、Dockerのクライアントとかが入っています。つよいですね。

Docker Quickstart

アプリケーションフォルダ(という呼び方で正しいんですかね…?)かLaunchPadのDocker Quickstart Terminalを実行します。

Docker Quickstart Terminalくんは下記のことをやってくれます。

  • Boot2DockerのイメージをVirtual Box上にデプロイ
  • Mac上のDockerクライアントが接続するDocker HostをこのVMとするよう設定

Docker Quickstart Terminalで設定された内容は下記の通り確認できます。

ponkan% docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.xxx.xxx:2376"
export DOCKER_CERT_PATH="/Users/xxx/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env)

.zshrcに上記設定が書き込まれるはずなんですが、僕の環境では書き込まれていませんでした。そのため、Dockerでコマンドを実行しようとすると、Docker Daemonが見つからないと怒られてしまいました。

ponkan% docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

そんなときは、とりあえず下記の通りやれば良いかと思います。

ponkan% docker-machine env >> ~/.zshrc
ponkan% source ~/.zshrc

Hello World

ponkan% docker run hello-world   
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
...
Hello from Docker.
This message shows that your installation appears to be working correctly.
...

はい、お疲れ様でした。

MariaDB

MariaDBの公式のコンテナを導入します。

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=*** -e MYSQL_USER=user -e MYSQL_PASSWORD=*** -e MYSQL_DATABASE=db_name --name=mariadb_container_name mariadb

はいおわり。

ponkan% docker run -d -p 3306:3306  \
> -e MYSQL_ROOT_PASSWORD=xxx  \
> -e MYSQL_USER=yumi \
> -e MYSQL_PASSWORD=xxx \
> -e  MYSQL_DATABASE=wiki_db \
> --name=chinensis mariadb
Unable to find image 'mariadb:latest' locally
latest: Pulling from library/mariadb
...
Status: Downloaded newer image for mariadb:latest
35c970add5052f64a3477bd602e0b32596c1bf1554b0840af1be31fb84a5fb63
ponkan% docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
35c970add505        mariadb             "/docker-entrypoint.s"   22 seconds ago      Up 21 seconds       0.0.0.0:3306->3306/tcp   chinensis

Macに入れているMySQLクライアントから接続してみます。

ponkan% mysql -h `docker-machine ip` -p -u yumi                                    
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.1.12-MariaDB-1~jessie mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wiki_db            |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> exit
Bye

Mediawiki

synctree/mediawikiを導入します。

docker run -d -p 80:80 --name=mediawiki_container_name --link mariadb_container_name:mysql synctree/mediawiki

これだけやね。

ponkan% docker run -d -p 80:80 --name=gigantea   \
> --link chinensis:mysql synctree/mediawiki
Unable to find image 'synctree/mediawiki:latest' locally
latest: Pulling from synctree/mediawiki
...
54c7e4b0b72bfa1b6e5905f4a47c6a3f78d0a7db49c08671cc8c75e24f95ac3b

docker-machine ipで表示されたIPアドレスをブラウザで開いてなんやかんや設定した後、Mediawikiの設定ファイル(LocalSettings.php)をダウンロードします。これをコンテナに入れてあげれば設定完了です。

ponkan% docker cp ~/Downloads/LocalSettings.php gigantea:/var/www/html/LocalSettings.php

で、MediaWikiプラグインをいろいろいじったりしたいんですけど、プラグインディレクトリをマウントしてうんやかんやすればいいんですかね? dockerよくわかってないの。