Windows + Docker Toolbox で Wordpress開発環境構築　


#概要
Dockerで複数の記事を確認しながら環境構築をした中で
基本的な部分とよく使うコマンドや特に引っかかったことをまとめます。（順次更新）
こうしておけばいつでも振り返る事が出来ます。例え忘れてしまっても。

#投稿の目的

この記事は自分自身の忘備録且つ復習を兼ねて作成しています。
エンジニア一年目の卵が投稿している為、間違った内容が含まれていたり
この投稿で紹介されている内容より効率的な構築方法があるかもしれません。
その為、環境構築の際はこの記事だけでなく複数の情報から構築する事を推奨します。
この記事がご覧になっている方の一助になれれば幸いです。

#インストールした環境

・OS: Windows10 Home 64bit
・Memory: 4GB
・CPU: intel Core i5 3210M @ 2.5GHz

#記事構成


1. Docker のインストール
2. Docker の動作確認
3. Docker-compose を利用して環境構築

# 1. Docker のインストール

・ [Docker公式](https://docs.docker.com/toolbox/toolbox_install_windows/)からDocker ToolBox for windows をダウンロードします。
・ ダウンロードしたインストーラを実行します。
※ Install VirtualBox with NDIS5 driver[default NDIS6] にチェック忘れずに。

# 2. Docker の動作確認

・ デスクトップに追加された Docker Quickstart Terminal を起動します。
・ 以下の様なくじらのキャラクターが画面に表示されるのを確認します。
![Docker ToolBox capture.PNG](https://qiita-image-store.s3.amazonaws.com/0/205838/c32234cd-cdec-b7b7-fe0d-586dd0783d4b.png)

・その後、動作確認の為に以下のコードをToolBox上で確認します。

```console:Docker　
docker run hello-world
```

・上記が正しく実行されていればOKです。

# 3. Docker-compose を利用して環境構築


## 作業用ディレクトリの作成
まず作業用のディレクトリを作成し、その中に環境を構築していきます。
作成後はそのディレクトリに移動します。

``` console:Docker　
mkdir ○○　&& cd　○○
```

## Docker-compose.yml の作成

Dockerを扱う際には DockerFile を用意しビルドをしますが、
今回は既にビルド済みの Image をインストールして利用します。

今回 Docker-compose を利用してインストールする Image は以下の通りです。

・ Wordpress
・ MySQL

それでは実際の内容を確認しましょう。

```docker-compose.yml

version: "2"

services:
    
    # wordpress settings
    wordpress:
        image: wordpress:latest
        container_name: "wordpress"
        ports:
            - 80:80
        environment:
            WORDPRESS_DB_HOST: db:3306
        env_file: .env
        restart: always
        volumes:
            - ./sitedata:/var/www/html/
        depends_on:
            - db
        
    # mysql settings
    db:
        image: mysql:latest
        container_name: "wp-mysql-db"
        env_file: .env
        restart: always
        volumes: 
            - db-data:/var/lib/mysql/
            
# 永続的なストレージが欲しい場合に必要な設定
# https://docs.docker.com/compose/compose-file/#volume-configuration-reference
volumes:
    db-data:
         driver: local
    wp:
         driver: local
       

```

パスワード等の環境設定データは別ファイルから読み込みます。

```:.env
WORDPRESS_DB_NAME=wordpress
WORDPRESS_DB_USER=wp_user
WORDPRESS_DB_PASSWORD=password
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=password
```
この2ファイルを作業中のディレクトリに配置した後、下記コマンドを実行します。
立ち上がった後に[192.168.99.100](http://192.168.99.100/) にアクセスすると
Wordpress のインストール画面が表示されています。

```:Docker
docker-compose up　-d
```

インストール画面までいったらきちんとデータが保存されるかどうか
一度確認してみましょう。下記のコマンドを実行してみてください。
このコマンドで Docker-compose を一度落とします。

```:Docker
docker-compose down
```

作業中のディレクトリを確認し、Docker-compose.yml 内の wordpress の volume に設定
したディレクトリが作成されているか確認します。
当該ディレクトリ内を確認し中身があれば問題ありません。
docker-compose up -d をして開発を始められます。

# まとめ
わざわざLAMP環境を整えなくてもこういったフレームワークのおかげで
開発環境を整えることが非常に簡単になっています。
ただ、こういったフレームワークの盛衰が激しいのも事実なので
しっかりキャッチアップしていきたいと思います。

#参考
・[Docker公式]
(http://docs.docker.jp/compose/wordpress.html)
・[Wordpressを構築するdocker-compose.yml]
(https://qiita.com/muk-ai/items/3350122d9e09473723c6)
・[Docker for Windows をインストールしてdocker-composeを動かすまで(Windows10)](https://qiita.com/chr/items/184b6af37d105bdad145)
・[docker-composeでwordpress環境をサクッと構築する](https://qiita.com/mom0tomo/items/7e611ac829863d4c5c82#_reference-ea576d6ead56d221aa1a)