Yesodアプリでketerを使ってデプロイしたいが動かない

実現したいこと

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

試したこと・調べたこと

参考にしたサイト
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

コメントを投稿

0 コメント