アドベントカレンダーは7日目になりました。師走!
最近Wordpressを触る機会が多いのですが、テスト環境がない状況が多くてどうにかならないか悶々としておりました。
色々調べてみるとHerokuで実現できそうだったのでまとめてみました。
無料の範囲でやるので制限はありますが、小規模なサイトでは事足りるんではと思われます。
やりたい事
githubでプルリクを投げたら、自動でHerokuに確認環境が構築される
やった事
- Herokuの設定
- githubにリポジトリを作成
- Herokuと連動させる(github、パイプライン作成)
- localのdockerで開発して、プルリクを投げる
Herokuの設定
- アプリを作成
- githubと連係
これをやっておく(省略)
ClearDBの設定
Herokuのアプリから設定
Resources
の Add-ons
から追加できる
Herokuの環境変数を追加
Settings
のConfig Variables
から設定
CLEARDB_DATABASE_URL
に下記のようなURLが記載されているので、それぞれConfig Vars
にAdd
していく
mysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}?reconnect=true
wp-config.php
には下記のように追加しておく
/** The name of the database for WordPress */
define('DB_NAME', getenv('DB_NAME'));
/** MySQL database username */
define('DB_USER', getenv('DB_USER'));
/** MySQL database password */
define('DB_PASSWORD', getenv('DB_PASSWORD'));
/** MySQL hostname */
define('DB_HOST', getenv('DB_HOST'));
これでConfig Vars
を利用するようになった
Herokuにパイプラインを作成
`Choose a pipeline` → `Create new pipeline` の順にクリックパイプラインの設定
`Enable Review Apps...` を選択 `Create an app.json File...` をクリックして `app.json`ファイルを作成する `app.json`のサンプルがページの下に表示されるのでコピーして自分で追加するか、そのまま`Commit to Repo`で追加してしまう 両方にチェックを入れて `Enable` をクリック これで準備は完了あとはプルリクを作成
プルリクがトリガーになり、Herokuでアプリが自動で立ち上がる
下記のように Deployed
が表示されるのでアクセスしてみる
github
下記の感じです
https://github.com/shiotaro/wordpress-test
その他、改善できそうなところなど
- Herokuの環境変数を使って、ローカルでは
.env
を使っているのでどちらかにあわせたい - 無料のDBは容量制限があるので足りない場合はお金を払うか、参照できるDBを作る必要がある(セキュリティーには気をつける)
- メール配信は
SendGrid
を利用すれば良いが今回は対応していない - CDNを利用することも考える
- ローカルのDockerで開発して、プルリク時にHerokuが立ちあがって確認できる流れ
まとめ
こんな感じで、Dockerで開発してプルリク時にHerokuに確認環境が自動で立ち上がります。
無料だとDBの容量には問題がありそうですが、ちょっとした確認なら満足ではないでしょうか。
Herokuにはまだ知らない機能がたくさんあるので、引き続きチェックしていきたいと思います。
参考になったサイト
https://www.slideshare.net/mookjp/dockerword-press
http://dackdive.hateblo.jp/entry/2016/01/26/121900
http://blog.itoudium.tokyo/post/wp_new/