WordPressのローカル開発環境を作るのに、Dockerを使ったらさくっと構築できたので書いてみます
Docker最高!
ツール検討
いろいろありました。初心者はLocalがおすすめらしいです。
- Local
- 簡単にWordPressのローカル環境を構築できるツール
- おすすめしているサイトが多い
- XAMPP(ザンプ)
- MariaDB、PHP、Perl を簡単にインストールできる Apache ディストリビューション
- MAMP
- Apache HTTP Server、MySQL、PHPをまとめてインストールできるツール
- Docker
- コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのプラットフォーム
- Dockerコンテナ内でWordPress開発環境を簡単に構築できる
今回、新たなツールをインストールしたくないのと、仮想環境で管理したい、という思いがあったので
もともと私のマシンに入っているDocker Desktop for Windowsを選びました
環境構築手順
公式からチュートリアルが出ているので、チュートリアル通りに実施したらいけました。
チュートリアル通りだと少し不便そうだったので、一部修正して使っています。
前提
- OS: Windows 10
- Docker Desktop for Windows バージョン4.5.1
プロジェクトの定義
- プロジェクト用ディレクトリを作成する
- ディレクトリ名は任意
- プロジェクト用ディレクトリ内に、
docker-compose.yml
ファイルを作成する- 内容は公式のチュートリアル参照。執筆当時に公開されていた内容をコピペしたものが以下
- WordPressの推奨バージョンを満たしているかを一応確認する
version: '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
volumes:
db_data:
docker-compose.yml修正
このままでも環境構築は可能ですが、2点の問題があるため、docker-compose.ymlを修正しました
WordPressの資材をローカルに保存する
チュートリアルだとWordPressコンテナ内の/var/www/htmlにインストールされた資材を参照している
ローカルから資材を覗くことができない&コンテナを削除すると資材がすべて消えてしまう
そのため、WordPressの資材をローカルに保存するようにする
- プロジェクト用ディレクトリにWordPressの資材格納用ディレクトリを作成する
- 今回はwordpressフォルダを作成した
- docker-compose.ymlファイルのwordpressに追記する
wordpress:
volumes:
- ./wordpress:/var/www/html
DBに接続できるようにする
チュートリアル通りだとローカルからMySQLに接続することができない
そのため、DBに接続できるようにポート番号を指定する
- docker-compose.ymlファイルのdbに追記する
db:
ports:
- "3306:3306"
全体はこんなかんじ。(+は修正で追記した部分)
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
+ ports:
+ - "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
+ volumes:
+ - ./wordpress:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
プロジェクト構築
準備ができたのであとはdockerこんぽうずの出番です。
- プロジェクト用ディレクトリ上で
docker-compose up -d
を実行する- 不足する Docker イメージがあれば取得される
- WordPressとMySQLのコンテナが作成&起動される
PS ■■■■■■■■■ > docker-compose up -d
Creating network "web_default" with the default driver
Creating volume "web_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
c32ce6654453: Pull complete
415d08ee031a: Pull complete
(略)
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
214ca5fb9032: Pull complete
cd813a1b2cb8: Pull complete
(略)
Status: Downloaded newer image for wordpress:latest
Creating web_db_1 ... done
Creating web_wordpress_1 ... done
WordPressの起動確認
- ブラウザを開き、
http://localhost:8000
にアクセス - WordPressの画面が表示される
- 画面表示に従って言語設定、ユーザ設定を行うと、WordPressの管理画面が表示される
参考文献
- ツール選定
- チュートリアル
- WordPressの推奨バージョン確認
- DockerでWordPress環境構築系の記事(大変参考になりました、ありがとうございました!)