この記事では、私たちがWordpress開発環境としてDockerを使っている理由を書いてみようと思います。
「Wordpressを始めよう!」という記事や本の中で、開発環境でDockerを取り入れるものはかなり少ない?あまりみたことないのですが、結構魅力ですよ。ということをお伝えしたいなって思います。
1%に入った新しいメンバーの中で、開発に興味がある人にとって、プロジェクトの構成を知る1つのきっかけにもなればと思います。
私たちがwordpress開発環境としてdockerを使用している最大の理由は、汎用性の高さからです。
一般的にWordpressといえばMampとかzampとかじゃないかなって思います。
こういう環境はすでにアプリが用意されていることもあり、サクッと立ち上げられますね。
しかし、色々と便利なことやりたいな〜と思ったときにちょっと不便だったりします。
一方、Dockerはコンテナの構成を自由に変更できるので、結構自由度の高いことができます。
Dockerを使えば、手動でインストールしたり、カテゴリや記事を追加して検証したりといった作業が一切不要になるのが魅力ですよね。
人力のテクニックに頼っていた部分を、全てスクリプト化できます。
これって、チーム開発において大きな武器になりませんか??
さあ、いよいよ私たちのコンテナ構成をご紹介します。
私たちのWordpressリポジトリの中にあるdocker-compose.ymlでは3つのコンテナを使っています。
marinaDBを使うためのコンテナですね。
Dockerは基本使い捨て前提なのでデータもすぐ削除されますが、やはりwordpressを動かす上でDBは必須です。
仮に、サーバーが変わったとしてもコンテナのイメージを変えるだけでいいので便利!
サイト移行でも大活躍してくれます。
wordpressの本体コードが入っているコンテナです。
基本的に、オリジナルのテーマファイルだけを管理しています。
もちろんGit管理しているので、不要なファイルは極力入れないようにしています。
また、WP-CLIもイメージ内でインストールしています。
WPコマンドを使う場合はこのコンテナ内で実行することになります。
フロントのcssをビルドしてくれるコンテナです。
私たちはフロント部分でnpmを使ってデザインしています。
例えば、Bootstrapはnpmで取り込んでいますし、sassを取り入れています。
最終的にビルド成果物はstyle.cssとしてビルドしてwordpressコンテナにマウントしています。
ポイントはコンテナが立ち上がりっぱなしで、scssファイルの変更を管理してくれているっていうところです。
scssファイルが変更されると自動でコンパイルされるようになっています。
WordPressは初期状態でscssやnpmは含まれていません。
そこで、nodeコンテナを使ってそこら辺を補っているっていう感じですね。
ここら辺はMampとかではできないことじゃないでしょうか。
モダンjsの技術を使えると、開発が非常にスムーズに進ようになりますね!
この記事を書いた人
基本バックエンドなエンジニアですが、デザインとかも好きだったり。 休日はどこかのカフェで何かを勉強してます。 さあ、いろんな話をしましょう! 16パーソナリティは指揮官 (ENTJ-A)です!