Docker-composeでローカルにWordPress環境を作成する

新しくブログを始めたいと思い、テーマやプラグインの検証のためにローカルにWordpress環境を作成することとしました。
サーバを借りてしまうと料金がかかるので、ローカルで確認できるところはローカルで・・・

Docker-composeならすぐできます

ローカルマシンの環境は以下の通りです
・Windows10 Pro
・Docker Desktop 2.2.0.3

ディレクトリ構成は以下の通りです。
Cドライブ直下にWordpress_localというディレクトリを作成、その中にdb_dataディレクトリ、htmlディレクトリ、DockerComposeファイルが入っているという構成です

Sheltie@Papillon MINGW64 /c/Projects/Wordpress_local
$ tree
.
|-- db_data
|-- docker-compose.yml
`-- html

Docker-composeの内容は以下の通りです

version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
      - "./db_data:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - "./html:/var/www/html"
    links:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress

公式ページにもDockerComposeの例が載っていますが、wordpress系のファイルを触りやすくするためにVolumeの割り当てを行っています。

Docker-composeを起動する

docker-compose.ymlが存在するディレクトリで、以下のコマンドを実行します

docker-compose up -d

起動が完了すれば、「localhost:8000」にアクセスすることでWordpressインストール画面が表示されるはずです。

先ほど作成したdb_dataディレクトリ、htmlディレクトリにwordpressファイル一式が入っています。
htmlディレクトリ配下はテンプレートをカスタムするときに利用することになると思います。

以上・・・の前に

以上でwordpressローカル環境の構築方法の紹介は終了となります。簡単に作成できることがご理解いただけたかと思いますが、自分はなぜかwordpressからdbにアクセスできずにはまってしまいました。

原因はセキュリティソフト(カスペルスキー)

カスペルスキーのファイアウォール機能でDocker間の通信がブロックされていたようです。
カスぺルスキーの設定 > プロテクション > ネットワーク でネットワーク設定ダイアログを表示し
DockerのIPが「許可するネットワーク」になっていることを確認します

以上

以上でwordpressのローカル環境構築の紹介は終了です。
Dockerの登場でローカルの開発環境構築は一気に敷居が下がった気がします。
今まではDockerDesktopはWindows10 Proのみの提供でしたが、近日中のアップデートでWindows10 Homeでも利用できるようになるとのこと! 楽しみですね
https://forest.watch.impress.co.jp/docs/news/1239275.html