Windows DockerでWordpress環境を構築する手順を紹介します。
テーマ開発やちょっとしたスタイルの変更を気軽にできるようになり非常に便利です。
Docker Desktopのインストール
以下の記事を参考にDocker Desktopの設定を行います。
かつてはWindows Pro以上でないと使用できませんでしたが、2021/06現在ではWindows Homeでも使用することができます。
基本的には記事の通りに設定を進めていけば大丈夫ですが、念のため手順を記載しておきます。
こちらからDocker Desktopをインストール
インストール完了し、起動するとWSL2がインストールされていない旨の警告が表示されるので、こちらからインストールする。
コマンドプロンプトからDokcerが使用できるかを確認。
C:\>docker -v Docker version 20.10.7, build f0df350
DockerでWordpressを動かす
Dockerの設定が完了したら、Docker上でWordpressを動かす設定をしていきます。
docker-composeファイルの作成
まずは以下のdocker-composeファイルを作成していきます。
これは、Wordpressを動かすために必要なコンテナ(WordPress、MySQL)をひとまとめに管理するためのファイルです。
これを作っておくと、コンテナの管理が楽になります。
ファイル名はdocker-compose.ymlとしてください。
version: '3.8' services: wordpress: image: wordpress:latest container_name: wp-container depends_on: - wordpress-db ports: - 8090:80 restart: unless-stopped volumes: - wordpress:/var/www/html environment: WORDPRESS_DB_HOST: wordpress-db:3306 WORDPRESS_DB_USER: admin WORDPRESS_DB_PASSWORD: admin WORDPRESS_DB_NAME: wordpress wordpress-db: image: mysql:5.7 container_name: wpdb-container restart: unless-stopped environment: MYSQL_DATABASE: wordpress MYSQL_ROOT_PASSWORD: root MYSQL_USER: admin MYSQL_PASSWORD: admin volumes: - db:/var/lib/mysql volumes: wordpress: db:
これを任意のフォルダに配置してください。
また、こちらはあくまでサンプルなので詳しい設定は以下のWordpressイメージの公式ドキュメントをご参照ください。
補足:イメージファイルのバージョン
上記のファイルではWordpressのイメージは最新を
image: wordpress:latest
MySQLは5.7をしています。
image: mysql:5.7
これらのイメージは任意のバージョンを指定可能です。
例えば、以下のようにすればWordpressのバージョンを指定できます。
image: wordpress:5.2.4
指定できるバージョンは、以下のようなURLで確認ができます。
https://registry.hub.docker.com/v1/repositories/[コンテナイメージ名]/tags
・Wordpress
https://registry.hub.docker.com/v1/repositories/wordpress/tags
・MySql
https://registry.hub.docker.com/v1/repositories/mysql/tags
Dockerコンテナを起動
作成したdocker-compose.ymlがあるフォルダに移動し、docker-compose up -dとコマンドを打つと、Dockerコンテナが起動します。
D:\wordpress>dir /b docker-compose.yml D:\wordpress>docker-compose up -d Creating network "wordpress_dev_default" with the default driver Creating wpdb-container ... done Creating wp-container ... done D:\wordpress>
Dockerコンテナの起動が確認出来たらhttp://localhost:8090/wp-admin/にアクセスしてみましょう。(※portはdocker-composeで指定したものに読み替えて下さい。)
Worpressの管理画面にアクセスできれば成功です。
gitとの連携
Docker上でWordpressの起動を確認出来たら、次はgitと連携してテーマの開発を行ってみましょう。
すでにテーマはgit管理されている前提で話を進めます。
まずは、gitリポジトリをローカルの任意のフォルダにcloneします。
次に、Wordpressのテーマフォルダに上記のフォルダをマウントする設定をdodker-composeに記載します。
例えば、/d/git/your_theme_dir配下にリポジトリをcloneした場合は以下のように記載します。
volumes: - wordpress:/var/www/html - /d/git/your_theme_dir:/var/www/html/wp-content/themes/your_theme_name
/var/www/html/wp-content/themesはWordpressのテーマが保存されているディレクトリです。
また、Wordpressコンテナの初回起動時はyour_theme_nameディレクトリが存在しないので、マウント前にあらかじめ作成しておかないとエラーになります。
WordPressコンテナの起動、ディレクトリのマウントが成功したら、Wordpress管理画面からテーマを確認してみます。
マウントしたディレクトリがテーマとして認識されていれば成功です。
あとは、cloneしたフォルダのソースを編集して開発を進めることが可能です。
その他
開発環境用の設定
広告やアナリティクスなど本番でしか機能させたくないものは、環境変数で分岐を入れるとよいです。
以下のようにすれば、Docker-Composeで環境変数を設定することができます。
environment: APP_MODE: dev
Worpress(php)の分岐は以下のように設定できます。
<?php if(getenv('APP_MODE') =='dev') : ?> <p>開発環境です</p> <?php else : ?> <p>本番環境です</p> <?php endif; ?>
Visual Codeの便利機能
Visual CodeからDockerコンテナを立ち上げたり、attachしてコマンドを実行したりもできるようです。
現状で特に問題ないので設定はしていませんが、いろいろ設定してみてもよいでしょう。