SlideShare a Scribd company logo
1 of 16
Download to read offline
すごいHaskellたのしくHeroku!
@haru2036
だれおまえ
• @haru2036
• http://www.haru2036.info
• わりと知ってる人しかいない
概要
• YesodでWebアプリ作った
• デプロイ先がない
• Heroku使えるらしい
• Ubuntuでビルドしろとかそんなはなしも
• Heroku-buildpack-ghcがいいらしい
• 15分ルール
• Anvil使った
• 結局のところ
HerokuでHaskell
• 通常使えません
• でも無理やりバイナリ突っ込めばいけるらしい
• やってみよう
• 結果:茨の道でした
+
今回の条件
• Herokuは無料プランで(つーか無料のために頑張った)
• HaskellでWebアプリの開発にはYesodを使用
方法?
• 優しいHaskellerがBuildpackを公開しているのでそれを使って
Heroku上でビルドします
• やってみた
• Buildpack:Heroku上でソースをコンパイルしてバイナリを
組み込むための仕組み?
• ! Timed out compiling Haskell app (15 minutes)
• ! See https://devcenter.heroku.com/articles/slug-
compiler#time-limit
魔の15分ルール
• デプロイ中に15分以上経つと有無をいわさず中止される
• 15分フレンズ(見てない)
• 困った
Anvilをつかう
• ビルドサーバ
• herokuにプラグインインストールして(運が良ければ)コマンド
一発で行けるらしい
• 30~45分位かかってエラーはいてダメだった
• 二度目も同じくらいかかったけどうまいこと行けたっぽい
• ビルドからデプロイまで全部いけちゃうのですばらしい
(らしい)
• ちなみに(これだけでは)動きませんでした
そして成功へ
• それでもApplication Error
• Heroku logs したらlibgmpがなくて困ってるとのこと
• Ubuntu10.04の仮想マシン作ってそこから持ってくることに
• ディレクトリを作ってそこにlibgmp.so.10を入れる
• Procfileをこのシェルスクリプトを実行する形に
#!/bin/sh
LD_LIBRARY_PATH=$PWD/libs ./dist/build/app/app Production -port
$PORT
うごきました
現在の構成
おうち
github heroku
デプロイ用ビルド環境
(と言うよりライブラリファイル
取り)
開発マシン 開発マシン
まとめ
• 今のところ
• BuildpackとAnvilを使ってビルド
• 足りないファイルがあったらUbuntu 10.04LTS (x64)から
• で動く(はず)
問題点
• Slug sizeがでかすぎる
• 231MB of 300MB (どんどん増える)
• そのうち制限引っかかりそう
• そもそもデプロイ完了までが茨の道
• それを乗り越えれば快適なHaskellで開発できるけど
• 普通にVPS借りろってことか
• いつ使えなくなるかわからん
• そうならないといいな
• 普通にVPS借り(ry
他の方法
• Dockerのコンテナ上でビルドしてそれをデプロイ
• 超イケてる
• 今度試してみます
参考資料
• Yesodで作ったWebアプリをHeroku上でビルドしようとしても15
分以内に終わらないときは
• http://qiita.com/jabaraster/items/6dc8030bd55c0d2fc642
• Docker を使って Haskell を Heroku の cedar stack用にコン
パイルする
• http://blog.chairoi.me/entry/2014/02/25/130259

More Related Content

Viewers also liked (13)

2 april al quran
2 april al quran2 april al quran
2 april al quran
 
042213
042213042213
042213
 
CCD Event
CCD EventCCD Event
CCD Event
 
Tecnologias de información para los negocios
Tecnologias de información para los negociosTecnologias de información para los negocios
Tecnologias de información para los negocios
 
Ten questions to ask when preparing for change
Ten questions to ask when preparing for changeTen questions to ask when preparing for change
Ten questions to ask when preparing for change
 
041913
041913041913
041913
 
Ijetr021143
Ijetr021143Ijetr021143
Ijetr021143
 
Indian Tourism - An Overview
Indian Tourism - An OverviewIndian Tourism - An Overview
Indian Tourism - An Overview
 
Pr Project #STOPTORTURE
Pr Project #STOPTORTURE Pr Project #STOPTORTURE
Pr Project #STOPTORTURE
 
Slide share
Slide shareSlide share
Slide share
 
2.1 universidad nacional de chimborazo
2.1 universidad nacional de chimborazo2.1 universidad nacional de chimborazo
2.1 universidad nacional de chimborazo
 
презентація ман вступне засідання
презентація ман вступне засіданняпрезентація ман вступне засідання
презентація ман вступне засідання
 
Coursebook essay
Coursebook essayCoursebook essay
Coursebook essay
 

Recently uploaded

Recently uploaded (12)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

すごいHaskellたのしくHeroku!