KitematicでWordpress

## ※ 注意：Kitematic という製品は廃止されました。

「デザイナーも気軽に `Wordpress` を立てられたらいい」とおもったので

ターミナルとか苦手意識ある人多いし、
KITEMATIC（カイトマティック）でやってみた。

## 結論
ターミナルを使わずに
WordPressを立てるのは無理だ。

KITEMATICを使ってやってみようと思ったが、逆にややこしい。
変な挑戦はしないほうが良い（教訓）

素直に `docker compose` を覚えたほうが良い。
クイックスタートもある。
https://docs.docker.com/compose/wordpress/

`docker compose` で打ったコマンドこれだけ。

```
$ mkdir my_wordpress
$ cd my_wordpress/
$ touch docker-compose.yml
$ vi docker-compose.yml（コピペ）
$ docker-compose up -d
```
ブラウザで見たら
http://localhost:8080
WordPress動いてる。

`docker-compose.yml`は
書くの難しいだろうとおもったら、基本的にコピペ。

```
version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
```

## 何がやりたかったのか？
「Docker」をベースにやればうまくいくだろうと思い

しかも「KITEMATIC」のほうが「GUI」だ

記事ないし書こう、みたいなことで書き始めてみた、

全然簡単じゃないというオチだった。
失敗を糧にしてもらえれば、と思います。


手っ取り早くDocker（KITEMATIC）で
WordPressをやろうとしたけど、

なんか、つまづいて、結局ターミナル必要だし、
デザイナー向けに共有できなくて、ちょっと嫌になっている人向け。

## KITEMATICの良いところ

「Docker」の食わず嫌いを治せるかもしれない。
KITEMATIC（カイトマティック）は、コンテナ1個ならラクだと思う。

## 「Docker for Mac」をまず入れておく。
ダウンロードしたDockerを起動しておきます。
このへんはブラウザで落としてきて立ち上げるので、大丈夫かと。
https://docs.docker.com/docker-for-mac/install/
![スクリーンショット 2019-02-01 22.37.32.png](https://qiita-image-store.s3.amazonaws.com/0/216132/9e44d967-7c5a-6014-a82e-056a758f8733.png)

## 「KITEMATIC (Docker Toolbox)」を入れる
ポチポチするだけ。DockerをGUIで使えるっていう、嬉しいツール。
KITEMATIC（カイトマティック）って奴を使います。
https://docs.docker.com/toolbox/toolbox_install_mac/

DockerIDでログインすると、「オススメのリポジトリ」が色々出てくる。
なんかオススメされているやつが公式っぽいアイコンも出てるので、
とりあえずコレを入れてみよう！

![スクリーンショット 2019-02-01 22.35.36.png](https://qiita-image-store.s3.amazonaws.com/0/216132/f09a7a50-a844-c113-7177-e08db08ac7ce.png)

## MYSQL_ROOT_PASSWORDを書いておく。
あ、あれ？Dockerが立ち上がらないぞとおもったら、MysqlのROOTのパスワード入れないと起動しないっぽいです。Settingsに、とりあえず
 `MYSQL_ROOT_PASSWORD` は `secret` って書いておいた。
![スクリーンショット 2019-02-01 22.39.29.png](https://qiita-image-store.s3.amazonaws.com/0/216132/04184834-35c9-f36c-0b8e-26f39b1d0d51.png)

他の記事からですが、、右のメニューの説明です。

| 名前 | 設定できる項目の種類 |
|:--|:--|
| General | コンテナ名やDockerで起動するときの環境引数をここで指定できます |
| Hostname/Ports | 外部のネットワークから接続する場合に，IPとPortの設定を確認変更することができます。 |
| Volumes | コンテナがマウントするディレクトリを選択することができます。 |
| Network | Localの他のコンテナとの接続について設定。 |
| Advanced | Kitematicを終了した時のVMの扱いなどを設定することができます。 |

## Docker立ち上がってるかな？
KITEMATICでみたら、緑に光ってるから分かるんですけど、初心者にはそれが「コンテナが立ち上がっている状態である」とは分からないんで、ちょこっとターミナルを使ってみる。 `docker ps` って打つと何が起動してるか分かる。

```
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                               NAMES
b77a430b91f8        mysql:latest        "docker-entrypoint..."   34 minutes ago      Up 34 minutes       0.0.0.0:32775->3306/tcp, 0.0.0.0:32774->33060/tcp   mysql
```
おお？立ちあがっているみたいだ・・・ターミナル使いだしたらKITEMATICの意味ないだろって思ったんですけど、「KITEMATIC」のほうが逆に、どう動いてるのか分からんので・・・

```
$ docker start mysql
$ docker stop mysql
```

この辺も、結構英語が簡単で助かる。


## Dockerコンテナにログインしてみる
コンテナにログインするっていうことができます。
`docker exec -it mysql bash` 
またターミナルをちょこっと触ってみる。なんか、ちゃんと動いているっぽいな。

ちなみにKITEMATICでいうと、MySQLの「exec」ボタンおすと、ログインします。
![スクリーンショット 2019-02-02 0.07.59.png](https://qiita-image-store.s3.amazonaws.com/0/216132/0b3e1492-194b-a314-a6df-4be85b903eb8.png)


```
$ docker exec -it mysql bash
root@5877a81ad041:/#
```
`root@` とか出てるコレがDockerにログインした状態。

## Mysql動いているかな？
```
root@5877a81ad041:/# mysql --version
mysql  Ver 8.0.14 for Linux on x86_64 (MySQL Community Server - GPL)
```
おっ！ちゃんと動いている。ん〜？？でも、Mysqlのバージョンが「8」だな。。。これってバージョンさげられないのかしら。

## バージョンを変えてみる
Dockerコンテナって、MySQLのバージョンごとに。イメージ違いますよね。
（このDockerのイメージはlatestつまり最新）

最新の公式のコンテナを落としてきてたら、どうにかなるんじゃないのかと思ったりしてたけど、
さすがにバージョン変わんないですよね。。。MySQL「5」とかのバージョンがいいな。
なんで「5」が良いかって、「8」は新しすぎる。お客さんの環境とか、だいたい「5」だと思うんですよ。
どう違うのか説明できないけど。

## 昔のバージョンを落としてくる
ちょっとKITEMATICって「mysql 5.7」とかじゃ検索できないんすね。。
あ「mysql-57」で検索したら何か出てきたわ。。コレかしら。
![スクリーンショット 2019-02-02 0.10.18.png](https://qiita-image-store.s3.amazonaws.com/0/216132/630b8b37-5a4e-cff9-f138-5e04431c0028.png)

でも、なんかCentOS7って何か分からないぞ？という事で困ったので、、ターミナルでコマンドを打ってみた。。

```
$ docker pull mysql:5.7
```
んで、これを「KITEMATIC」にいれてあげよう。`MyImages` に `local` のMysqlが増えている。コレを立ち上げる。
![スクリーンショット 2019-02-01 23.35.49.png](https://qiita-image-store.s3.amazonaws.com/0/216132/522fefa8-13ec-ba4c-857c-ed5865dee82f.png)

例によってまたそのままでは、起動しないので・・・

![スクリーンショット 2019-02-01 23.35.29.png](https://qiita-image-store.s3.amazonaws.com/0/216132/1bcb27b2-f636-927c-e3d1-0dc31d1f349d.png)

MYSQL_ROOT_PASSWORDがないよ、って言われるやつなので、
Settingsで「secret」とか適当なものをいれとく。

```
mbp:~ nishi$ docker exec -it mysql bash
root@166c630f63d0:/# mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper
```
![スクリーンショット 2019-02-02 0.15.23.png](https://qiita-image-store.s3.amazonaws.com/0/216132/64951532-329d-20b8-256e-4f7091113b49.png)

多分コレでMySQLは5.7になったっぽいぞ。

## MySQLにログイン
```
root@5877a81ad041:/# mysql -u root -p
Enter password: 
```
↑パスワードは「KITEMATIC」で `secret` に設定してたので、それを入力

```
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> quit
```
とりあえず、動いてるっぽいのでquitで抜ける。

## Dockerからも抜ける
```
root@5877a81ad041:/# exit
exit
mbp:~ nishi$
```

ターミナル使い慣れてないので、「quit」なのか「exit」なのか、毎回よくわからなくなります。。。

## phpMyAdminを入れる
何でもいいけど、コレでいいかなと。
![スクリーンショット 2019-02-01 22.55.10.png](https://qiita-image-store.s3.amazonaws.com/0/216132/a0691f93-240a-be77-c66d-67a315f14a7a.png)
これのSettingsをみますと。
![スクリーンショット 2019-02-01 23.00.07.png](https://qiita-image-store.s3.amazonaws.com/0/216132/f2786898-6186-5eeb-7697-906f59e9cce5.png)

```
PUBLISHED IP:PORT
localhost:32777
```
というような文字がみえたので、アクセスしてみる。

http://localhost:32777
ブラウザに表示されたけども・・・
![スクリーンショット 2019-02-02 0.21.48.png](https://qiita-image-store.s3.amazonaws.com/0/216132/f19cfc49-313a-a367-b99f-2f7bcc2256c4.png)
DBの連携がうまく行ってないっぽい。。。
どうすれば良いんだ。。。 「--link」ってやつをターミナルから入れないと駄目。
ん？　--link ってどこに入力するんだ？

## docker-compose.yaml
むしろこれがないと、簡単に連携できない。

「KITEMATIC」でできる？
コンテナを3つ4つ使いますってなると、

急にdocker-compose.yamlの説明が出てきて
「KITEMATIC」のやり方は全然出てこないんすよ。

ということは多分出来ないってこと（2019年2月現在では）

## ああ、多分これ「KITEMATIC」だけじゃできないと判断。
できたとしても、デザイナーがスイスイ、Dockerを使えるようになるイメージが湧かない。
あきらめて「docker-compose」を使うことにしよう。



## 参考にしたリンク：
https://teratail.com/questions/114412
https://www.elp.co.jp/staffblog/?p=7136#docker-compose%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B
https://qiita.com/furu8ma/items/50718efebee20fd24517
http://gihyo.jp/dev/serial/01/mysql-road-construction-news/0005?page=2
https://simple-it-life.com/2017/01/02/docker-mysql/