Google Compute EngineでHaskell stack + spock覚書

  1. Google Compute Engineのインスタンスdebian stretchで、DISKは30GBにして作成
  2. いろいろ調べてCygwinsshインスタンスにつなげるようにする
  3. とりあえずemacshaskell-modeをsudo apt-get installでインストール
  4. https://docs.haskellstack.org/en/stable/README/

    に従って、以下でインストール
    curl -sSL https://get.haskellstack.org/ | sh
  5. さらに以下を言われたとおりにやって、動作確認
    stack new my-project
    cd my-project
    stack setup
    stack build
    stack
    exec my-project-exe
  6. 次にSpock

    https://www.spock.li/tutorials/getting-started

    を見ながらやる。まずstack new spock-test01
    cd spock-test01
  7. 次にpackage.yamlのdependenciesを以下のように修正(baseはそのままで)(これをきちんと書いてくれてないのが...)dependencies:
      - base >= 4.7 && < 5
      - Spock >=0.11
      - mtl
      - text
  8. 次。stack.yamlのresolver, extra-depsを修正
    resolver: lts-8.13
    (中略)

    extra-deps:
    - Spock-0.13.0.0
    - Spock-core-0.13.0.0
    - reroute-0.5.0.0
  9. stack build --fast --pedantic
    これが終わるまでしばらく待つ
  10. Spockのサイトに書いてあるコードをapp/Main.hsにコピペ
  11. もう一度stack build --fast --pedantic
  12. stack exec spock-test01-exe &
  13. 動作確認
    wget http://localhost:8080; cat index.html
    Hello World!が出るか確認
  14. いったんsudo shutdown -h now
  15. GCEのコンソールのVPCネットワークでport 8080の穴をあけるFWルールを作成し、すべてに適用にしておく
  16. 再度VMを起動。
  17. もう一度 stack exec spock-test01-exe
  18. ブラウザでhttp://(インスタンスのip):8080/hello/torilonで
    Hello torilon, you are visitor number 1
    が出れば成功

ふぅ~、ここまで結構大変。お疲れ様でした。