HanamiのサービスをDockerで起動できるようにした
Hanamiで実装中のサービスをDockerで起動できるようにしたのでログを残しておく。
Pull Request
Docker化したPull Requestはこちら
HanamiをDockerで起動する
サンプルないかなーと awesome-hanami を見てみたらちゃんとあった。
⭐️を付けて拝借する。
ちょっとした解説
dockerで起動するために追加したファイルは 3ファイル。
- Dockerfile
- docker-compose.yml
- Makefile
Dockerfile
サンプルではPostgreSQLを使用する構成になっているが、本プロジェクトではSqliteを使っているので書き換えた。
あとはRubyイメージのバージョンを2.6.0にしたくらいでほとんど変えてない。
dockerイメージに ruby:2.6-alpine を使っているので、bashが使えない。 ash を使う。
ポート 2300(hanamiのデフォルト)を開放している。
CMD ["bundle", "exec"]
で hanami コマンドを受け付けたりできるようになってる。
docker run -p 2300:2300 api hanami server --host=0.0.0.0
docker-compose.yml
とくに変哲もないdocker-compose.yml
サンプルからPostgreSQLの記述を削除して、webサービスのdepends_onも消した。
Makefile
makeコマンドの設定ファイル。
こんなふうにランチャーとして使っているのを始めてみたので、新鮮だった。
本来こうやって使うのかもしれない。ビルドでしか使ったことなかった。
dockerizeが --build オプション がついていて毎回時間がかかるので、 up タスクを追加した。
up — Docker-docs-ja 17.06 ドキュメント
課題
make up で起動したらHanamiの標準出力がでなくなった。 また別途対処しよう。