DockerでWordPressのテーマ開発環境構築【動画あり】

このブログでの手順を動画で行ったものを公開しています。記事を読んで難しそうだと感じた方は動画を見るのが良いかも知れません。

Dockerのインストール

まずはダウンロード
Get Started with Docker | Docker

インストールできたかを確認します。
which dcokerとして下記のような表示になればokです。


$ which docker
/usr/local/bin/docker

docker-composeのインストール

Macの場合はDockerインストール時にインストールされます。

docker-composeでWordPress環境を構築

https://github.com/kskhr/docker-wordpress/

docker-compose.ymlをDLしてきて、wordpressを配置したいフォルダに起きます。

例:
/User/pensuke/dev/docker-wordpress/docker-compose.yml
にファイルを配置した場合

$ cd /User/pensuke/dev/docker-wordpress/
$ docker-compose up -d
Starting docker-wordpress_db_1 ... done
Starting docker-wordpress_wordpress_1  ... done
Starting docker-wordpress_phpmyadmin_1 ... done

これで上記のように全てdoneになっていればokです。
ブラウザのURLに
localhost
と打ち込んでwordpressのインストール画面が表示されれば成功です。

docker-comopse upでエラーになった場合

下記のようなエラーになる場合があります。
メッセージを読むと、Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)とありますね。

80番ポートが既に使われているから立ち上げることができなかったようです。(ここではMAMPを同時に立ち上げているため80番ポートが既に使われているというエラーになりました。)

Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)

$ docker-compose up -d
Starting docker-wordpress_db_1 ... done
Starting docker-wordpress_wordpress_1  ... error
Starting docker-wordpress_phpmyadmin_1 ...

ERROR: for docker-wordpress_wordpress_1  Cannot start service wordpress: b'driver failed programming external connectivity on endpoint docker-wordpress_wordpress_1 (babce36840cec649fcddfd96a80912146bbc42bea36f5f6ab9df73d20f26d6d4): Error starting userland proxy: Bind foStarting docker-wordpress_phpmyadmin_1 ... done

ERROR: for wordpress  Cannot start service wordpress: b'driver failed programming external connectivity on endpoint docker-wordpress_wordpress_1 (babce36840cec649fcddfd96a80912146bbc42bea36f5f6ab9df73d20f26d6d4): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)'
ERROR: Encountered errors while bringing up the project.

portの確認方法(利用されているか)

下記を実行することで80番ポートが使われているかどうかを確認できます。

$ lsof -i:80 | grep -e LISTEN -e PID

(単にlsof -i:80としても出ますが、grepでLISTENの状態のものとヘッダーの行を取得するようにしています)
ここで出てきたPIDを指定して

$ kill -i {PID}

という風にするとLISTENしているそのプロセスを殺すことができます。

ただし、killしていいか分からないなど、不安であれば一度PCの再起動や、利用しているアプリを消していくと消える場合もあります。

docker-composeでWordPressのtheme開発

下記のようにdocker-composeを配置した場合は、
/User/pensuke/dev/docker-wordpress/docker-compose.yml

docker-compose run -dをすることでthemeフォルダがそこに作られます。
/User/pensuke/dev/docker-wordpress/themes/

この中に自分が開発したいテーマを入れてエディタで編集することで、dockerを用いてwordpressのtheme開発が可能となります。

以上です。

参考URL

Quickstart: Compose and WordPress | Docker Documentation
docker-compose を使って WordPress テーマ開発環境を構築しよう – PSYENCE:MEDIA