実現したいこと
Yesodアプリでketerを使って自身のPCにデプロイして、アプリが自動起動するようにしたい。
発生している問題・分からないこと
keterの公式サイトなどを参考にデプロイを試していますが、アプリがブラウザに表示されません。
該当のソースコード
一連の手順を記載します。
テンプレート「simple」を利用してプロジェクトを作成します。
stack new app1 yesodweb/simple cd app1 stack install yesod-bin --install-ghc stack build
プロジェクトが正常に動作することを確認します。
stack exec -- yesod devel
keter.ymlファイルは下記のように修正
app1/config/keter.yml
user-edited: true stanzas: - type: webapp exec: ../dist/bin/app1 args: [] hosts: - www.app1.com - localhost requires-secure: false - type: static-files hosts: - static.app1.com root: ../static - type: redirect hosts: - app1.com - localhost actions: - host: www.app1.com
※修正内容
user-edited: true
hosts:
- localhost
keterを実行
stack exec -- yesod keter
作成された「app1/app1.keter」ファイルを「opt/keter/incoming/」配下にコピー
一応、keterサービスを再起動
systemctl restart keter
ブラウザからlocalhost:90/app1
にアクセスしてもアプリが表示されず下記のような表示となります。
ログファイル(/opt/keter/log/)を確認すると下記の様に表示されます。
2024-06-05 05:28:24.69|Keter.Main:77|Info> Launching cli 2024-06-05 05:28:24.69|Keter.Main:85|Info> Launching initial 2024-06-05 05:28:24.69|Keter.AppManager:277|Info> Reloading from: NothingAIBundle "/opt/keter/etc/../incoming/my-project.keter" 1717555486 2024-06-05 05:28:24.92|Keter.App:118|Info> Unpacking bundle '"/opt/keter/etc/../incoming/app1.keter"' 2024-06-05 05:28:25.14|Keter.AppManager:283|Error> Error occured when launching bundle "app1": FileNotExecutable "/opt/keter/etc/../temp/app1-1/config/../dist/bin/app1" 2024-06-05 05:28:25.14|Keter.Main:87|Info> Started watching 2024-06-05 05:28:25.14|Keter.Main:89|Info> Started listening
app1プロジェクトのツリー
. ├── app │ ├── devel.hs │ ├── DevelMain.hs │ └── main.hs ├── app1.cabal ├── app1.keter ├── config │ ├── client_session_key.aes │ ├── favicon.ico │ ├── keter.yml │ ├── keter.yml.bak │ ├── robots.txt │ ├── routes.yesodroutes │ ├── settings.yml │ └── test-settings.yml ├── dist │ └── bin │ └── app1 ├── package.yaml ├── README.md ├── src │ ├── Application.hs │ ├── Foundation.hs │ ├── Handler │ │ ├── Comment.hs │ │ ├── Common.hs │ │ └── Home.hs │ ├── Import │ │ └── NoFoundation.hs │ ├── Import.hs │ ├── Settings │ │ └── StaticFiles.hs │ └── Settings.hs ├── stack.yaml ├── stack.yaml.lock ├── static │ ├── css │ │ └── bootstrap.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ └── tmp │ ├── autogen-8iASS6X3.css │ └── autogen-r3XaZuvR.js ├── templates │ ├── default-layout.hamlet │ ├── default-layout.lucius │ ├── default-layout-wrapper.hamlet │ ├── homepage.hamlet │ ├── homepage.julius │ └── homepage.lucius ├── test │ ├── Handler │ │ ├── CommonSpec.hs │ │ └── HomeSpec.hs │ ├── Spec.hs │ └── TestImport.hs └── yesod-devel ├── devel-terminate └── rebuild 17 directories, 46 files
keterの設定ファイルは下記のとおりです。
/opt/keter/etc/keter-config.yaml
root: .. listeners: - host: "!6" # Listen on all IPv4 hosts port: 90 # Could be used to modify port - host: "!6" port: 1443
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
参考にしたサイト
Deploying your Webapp<br>
Github snoyberg/keter<br>
Yesodで作ったWebアプリをketerでデプロイする<br>
Haskell + Yesodで作ったアプリをHerokuにデプロイする<br>
Haskell stack + Yesod + Heroku ついにできた!<br>
など
上記の詳細・結果
エラーメッセージ
Error occured when launching bundle "app1": FileNotExecutable "/opt/keter/etc/../temp/app1-1/config/../dist/bin/app1"
から実行ファイルが紐づけられていないのかな?とも思うのですが、解決できません。
ご教示頂けますようよろしくお願いします。
補足
ホストPC:Windows10
ゲストPC:VirtualBox(ArchLinux)
stack --version
Version 2.9.1, Git revision 409d56031b4240221d656db09b2ba476fe6bb5b1 (dirty) (8983 commits) x86_64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/06/06 04:06
2024/06/06 04:15 編集
2024/06/06 04:26
2024/06/06 04:30
2024/06/06 04:42