Published on

Docker + Wordpress + wordmove + Lightsail

Authors

久しぶりの Wordpress

ありがたいことに新規の仕事が入ったのですが、Wordpress の案件です。
もうしばらく WP のカスタマイズはやっていなかったので、リハビリをしなきゃいけません。
そして、チーム NOXI(自分と Ximoto)で協業するために開発環境を作っておきたいです。

Docker は使いたい

WP を使うにあたって、以前だと XAMPP とかを使っていたのですが Docker が少し分かってくると Docker を使いたくなります。
コンテナがあればdocker-compose upで済むのがありがたい。
Docker で WP の環境を作るのは、公式にも簡単なチュートリアルがあるように沢山の事例があるので困らなさそう。

DB の共有をどうするか

DB の永続化や共有方法を検討しなきゃいけない。
んで、色々調べていたら Docker に wordmove も一緒に構築してしまって、サーバーとスムーズに接続する方法を見つけた。
Docker-compose で最強(自分史上)の WordPress 開発環境を作る
これならシンプルなサーバーを共有してチームで使えるなと思った。
ありがとうございます!

安価なサーバーを求めて

なるべく安価にしたくて調べたら、AWS の Lightsail がよくある VPS サーバーのような感じで扱いやすそうだった。
Amazon Lightsail
DB を借りて、常にそこを読みに行くように設定すればいいと思ったけど、よく分からなくて継続検討かな。
もしかしたら RDS を使った方が安くて扱いやすいかも。

Lightsail に WP を移行する方法は、
WordPress を Lightsail に移行した
こちらを参考にさせてもらいました。
ありがとうございます!

手を動かしてみる

まずはドンドンやっていこう!ということで、
Docker-compose で最強(自分史上)の WordPress 開発環境を作る
こちらを参考に環境を作っていきます。

コンテナをリポジトリからクローンして、起動。WP のインストールと閲覧は問題なくできました。
次に Lightsail の設定を
WordPress を Lightsail に移行した
こちらを参考に進めます。

つまづいたところ 1

ssh で接続した所、参考サイトとディレクトリ構成が異なっていました。
cd と ls で中をさまよい、なんとなく構成を把握していきます。
movefile.yml に記載する WP のパスが参考サイトと異なって、

title=movefile.yml(参考サイト)
lightsail:
  vhost: "ドメイン"
  wordpress_path: "/home/bitnami/apps/wordpress/htdocs"
title=movefile.yml(自分の場合)
lightsail:
  vhost: "ドメイン"
  wordpress_path: "/home/bitnami/htdocs"

こんなんでした。
app というディレクトリがなかった。

つまづいたところ 2

ssh の鍵ファイルを登録できず詰まってしまいました。
これは、自分が Docker を使いこなせていないからですね。
色々調べて、下記の方法で解決しました。

ダウンロードした ssh を Docker が読みに行ける場所に格納する。
今回は docker-compose.yml に、

title=docker-compose.yml
wordmove:
        tty: true
        depends_on:
            - wordpress
        image: welaika/wordmove
        restart: on-failure:5
        container_name: "${PRODUCTION_NAME}_wordmove"
        volumes:
            - ./config:/home/
            - ./public:/var/www/html
            - ~/.ssh:/home/.ssh

としているので、自分のパソコンの/home/.ssh に格納しました。
その上で、wordmove のコンテナに入って

$ docker exec -w /home/ -it wordmoveのコンテナ名 /bin/bash

ssh 鍵の登録をする。

$ ssh-agent bash

$ ssh-add /home/.ssh/公開鍵のファイル名

wordmove push で「鍵ないんかい!」というエラーをクリアできました。

つまづいたところ 3

こんどは、wordmove push でサーバーから「rsync なんて知らないよ!」と怒られました。
参考サイトでは明記されてなかったので、Lightsail には入っているものかと思ってました。
パスが違うのかなぁとか、色々確認していたのですがエラーのとおり Lightsail に rsync をインストールしてみます。

$ sudo apt-get install rsync

sudo ないと「お前にその資格はない!」と突っぱねられました。
これで晴れてwordmove pushが使えて、Lightsail に送ることが出来ました!!

合計で半日くらいかかってしまいましたが、やっと環境ができました。
あとは実際いじって pull push をチームでやってみようと思います。
肝心の WP のカスタマイズもリハビリしなきゃです。

それではまた〜