blog.bouzuya.net

2017-05-08 bouzuya/bbn-json-hs 0.2.0.0 をつくった

昨日 (2017-05-07) のことだけど、 bouzuya/bbn-json-hs の 0.2.0.0 を公開した。

動作は Heroku および Amazon ECS: EC2 Container Service にデプロイして確認した。 Docker イメージを作成できており、手元で動くので、ほぼ間違いなく動くのだけど……。

機能については 2017-05-06 に書いたとおりのもので、 blog.bouzuya.net への Proxy だ。 HTTP リクエストを受け付けて、それに応じた HTTP リクエストを blog.bouzuya.net に投げ、結果を返す。それだけだ。

今回はまだ yesod を使わず、 wai & warp & aeson を使った。素朴な感じだ。また先日 (2017-05-06) は stack docker を使わないと書いたのだけど、結局、方針を変えて使うことにした。以下にその経緯を書く。

「さあ、デプロイしよう!」と思って docker images したら、サイズに 5.98 GB などと表示されていた。さすがに大きすぎる。 stack setup && stack build すると、もうダメっぽい。

いろいろ試行錯誤していて、ふと「ビルド済みの実行ファイル (exe) だけを持っていけば動くんじゃないか」と思い、ためしたら動いた。最近は JavaScript や Ruby ばかりを触っていたので、ソースコードなどをそのまま持っていくのが当たり前になっていた。まさか exe だけで良いとは思わなかった。環境 (インストールされているライブラリ) への依存はあるんだろうけど、そこをクリアできれば exe だけで動くのだろう。推測だし、よく分かっていないけど、動いたので良しとする。サイズも 992 MB 。まだ大きいけど、許容できる。

exe だけを配置することを前提に考えると、最終的に動く環境と類似の環境でビルドしておけば良さそうだ。つまり stack docker を使えば都合が良いということになる。今度は Dockerfilestack build しないので、 Docker の入れ子になる心配もない。

経緯はこんなところだ。

まだいろいろ試さないといけない。さきの連休で試したかったことがまだ終わっていない。画像アップローダーの作成を通じて、試していきたい。