DockerにWordPressをインストール(Windows10)

前回Dockerをインストールしたので今回はWordPressを構築していきたいと思います。


前回の記事はこちら。


この記事は以下の手順をもとに構築していきます。

https://docs.docker.jp/compose/wordpress.html

環境はWindowsです。


準備

まず、任意のフォルダの中にdocker-compose.yml ファイルを作成します。

今回はWordPressというフォルダを作ってその中にファイルを作成しました。


ファイルには以下を記述します。

version: '3'

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
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:



プロジェクトの構築

今回はWordPressというフォルダの中に作ったので、WordPressフォルダの上「Shift」を押しながら右クリックし、PowerShellを起動します。


以下を実行します。

docker-compose up -d


こんな感じの画面が出て、実行が終わったらブラウザから  http://localhost:8000  にアクセスしてください。


するとWordPressのインストール画面が出てきます。

手順に従い、インストールしてください。


この画面で完了です。

お疲れ様ででした!


特に設定項目もなくわりと簡単にいけました!

開発用に環境をごにょごにょ

このままではWordPressのファイルとデーターベースの操作がやりにくいので、ファイルとデータベースを使いやすくします。


WordPressのファイルをWindowsにマウントする

テーマやプラグインを直接扱えるようにするには、コンテナ側で構築された環境とホスト側のディレクトリをマウントします。

まず作業フォルダ内にWordPressファイル群がマウントされるサブフォルダを作成します。

今回は”wp-content”フォルダを作成します。

そしてComposeファイルのwordpress:配下に以下を定義します。

volumes:
  - ./wp-content:/var/www/html/wp-content

記載済みymlファイルの内容については後述

データベース用にphpMyAdminを使えるようにする

データベースを操作するのにphpMyAdminを使います。

以下の定義をComposeファイルのservices:に追加します。

phpmyadmin:
  depends_on:
    - db
  image: phpmyadmin/phpmyadmin
  environment:
    PMA_HOST: db
  restart: always
  ports:
    - "8080:80"

この定義を含めて起動後にブラウザでlocalhost:8080にアクセスするとphpMyAdminのログイン画面が表示されます。

ログインには以下の “wordpress” の部分を使用してください。

MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress


今回はyml内容を以下のように記載しています。

version: '3'

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
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes:
       - ./wp-content:/var/www/html/wp-content
   phpmyadmin:
     depends_on:
       - db
     image: phpmyadmin/phpmyadmin
     environment:
       PMA_HOST: db
     restart: always
     ports:
       - "8080:80"
volumes:
    db_data:


最後に以下を実行して完了なのですが、追記したマウントが場合はうまくいきませんでした。

docker-compose up -d

マウントはいろいろ問題があるようです。

今回は一旦コンテナを削除して新しく作ったymlファイルから再度コンテナを作成し、docker-compose up -dをするとうまくいきました。


Windowだけかな?

マウントするものについては最初にきちんとやっておかないと後で面倒になりそうです。お気をつけて。

コメントを残す