先日以下のような記事を拝見しました。
wp-envでWordPress開発環境迷子に終止符を – Photosynthesic blog
衝撃を受けたので自分でも手元のWin10マシンで試してみることにしました。
経緯は末尾の備考に記しまましたが、まずはDockerを以下URLからダウンロード、(再)インストールします。
>docker --version
Docker version 19.03.5, build 633a0ea
>docker-compose -v
docker-compose version 1.25.4, build 8d51620a
入りました。
ついでにチュートリアルを試します。
>docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete Digest: sha256:fc6a51919cfeb2e6763f62b6d9e8815acbf7cd2e476ea353743570610737b752
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
## 略
動きました。OKですね。
次は公式ドキュメントに則って……と言いたいところですが、グローバルインストールはしたくなかったのでローカルインストールしてみます。
> cd PATH\TO\DIRECTORY\wp_env_test
それから、.wp-env.json
を作成します。とりあえず動作試験だけなので中身はスカスカで。
{
"core": null
}
準備ができたらインストール。
> npm i -D @wordpress/env
※今回のWin10マシンでは環境変数のユーザ環境変数のPath
に.\node_modules\.bin
が設定されているので、コマンドが認識される状態になっています。
インストールが完了したら、起動してみます。
>wp-env start
√ WordPress started. (in 89s 912ms)
ダウンロードから始まり、少しすると起動してきます。
>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
AAAAAAAAAAAA wordpress "docker-entrypoint.s…" 53 seconds ago Up 51 seconds 0.0.0.0:8889->80/tcp XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_tests-wordpress_1
BBBBBBBBBBBB wordpress "docker-entrypoint.s…" 53 seconds ago Up 51 seconds 0.0.0.0:8888->80/tcp XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_wordpress_1
CCCCCCCCCCCC mariadb "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_mysql_1
docker ps
コマンドで起動中のコンテナを確認。上がっていますね。
この状態でブラウザでhttp://localhost:8888
にアクセスすると……
見慣れたWPサイトの初期画面が表示されました。
http://localhost:8888/wp-login.php
でログイン画面にもアクセス。
初期ID、パスワードはadmin
とpassword
のようなのでそれでログイン。無事ログインして、通常通りWordPressにアクセスできることを確認できました。
>wp-env stop
√ Stopped WordPress. (in 5s 937ms)
>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
wp-env stop
で停止。
普通にやるとデータが消えますが、まあDockerですからね。
所感
軽く触っただけですが、今までサーバ建てたり環境設定したりしていたのがかなりシンプルになって良い感じだと思います。
DBやuploads
、テーマの中身をローカルのファイルやDBを参照して起動できれば、コアアップデートの試験もローカルでできるのではないでしょうか?
仮にそうなれば開発だけでなくメンテナンスのコストも大幅に下げることができると思うので、多方面に良い影響があるのではないか、という期待と未来を感じました。
備考
ちなみに今回試験をしたWin10マシン、Docker for Windows並びにDocker Windows自体はだいぶ前からインストール済みではあったものの起動しようとするとNot enough memory to start Docker
で起動できず。
Docker Desktopを最新版までアップデートして色々と試してもダメだったのでDockerそのものを再インストールした、という経緯があるのですが再インストールしたらあっさり動いたので「今までの苦労は何だったのか……」となりました。
ついでに。
- Windows 10(Surface)にDocker for Windowsをインストール – Qiita
- Docker for WindowsでOut of memoryが出たので再起動した – メンチカツには醤油でしょ!!
Not enough memory to start Docker
と出た場合はメモリ設定を下げると良いとのことです。マジか(上げていた人)。
今回はメモリ設定を上げていたところを再インストールで初期値にリセットされたことで解消されたのではないか、と思われます(ただ、初期値の2GBでもDockerが上がらなかったのでそれはそれで謎ですが)。