YesodアプリをDockerのコンテナでうごかす

Yesodで書いたWebアプリをDockerのコンテナとしていい感じにデプロイできないんかなあと思って調べてたらちょっと良さそうな方法が見つかった(たぶんいまさら)ので自分用メモ。

参考:

Yesod hosting with Docker and Kubernetes

stack.yaml

docker:
    enable: true
image:
    container:
        name: user/container-name
        base: fpco/stack-run
        add:
            config: /config
            static: /static

こんな感じでstack dockerを有効にしたりイメージ化するときのベースイメージやら名前やらを設定して、stack image containerでほぼ自動的にDocker用のイメージを作ってくれました。 あとはこれを煮るなり焼くなりで大丈夫でした。

書いてから気づいたけど参考のURLのとおりやっただけですね。すばらしくべんりですし、この後kubernetes用のファイルも書いてkubernetes上で動かすことも簡単にできました。 めでたし。