web-dev-qa-db-ja.com

Herokuprocfile「ProcfileでそのようなプロセスタイプのWebが定義されていません」エラー

Herokuを使用したのはこれが初めてであり、これと同様のエラーを持つユーザーがGoogleで見つからないという事実は、何かをしている可能性が高いことを意味しますway間違っています:

基本的な Herokuセットアップガイドはこちら に従って、NodeJSアプリケーションをWebにデプロイします。デプロイされ、dynosを次のようにチェックしようとしています。

heroku ps:scale web=1

ただし、これを行うと、次のエラーが発生します。

Scaling web dynos... failed
 !    No such process type web defined in Procfile.

heroku psを実行すると、何も返されません。

私のアプリのルートディレクトリには、Procfile(拡張子なし)という名前のファイルがあります。

web: node app.js

アプリは問題なくローカルで実行されます(foreman startを使用)。

質問はなぜこれが発生するのですか、どのように修正すればよいですか、気にする必要がありますか?

18
JVG

Herokuで実行されるプロセスは、Procfileという単純なテキストファイルで定義されます。

プロファイルには、アプリケーションの各プロセスの実行方法を定義する行が含まれています。これは言語固有であり、例は Heroku Devcenter Procfileの記事 で見ることができます。

Procfileは正確に綴る必要があり、最初の文字はすべて小文字で大文字にする必要があることに注意してください。 Procfileのファイル拡張子はありません。このProcfileは、プロジェクトのルートに配置し、git Pushherokuマスターを実行する前にローカルのgitリポジトリにコミットする必要があります。

Gitに追加した後でファイル名を誤って入力した場合は、コマンドでgitを使用して名前を変更できます。

git mv ProcFile Procfile

名前が変更されたファイルはステージングされるため、コマンドを使用して変更されたファイルをコミットできます

git commit -m "corrected name of Procfile"
8
jr0cket

私はここから自分で解決策を見つけました: https://stackoverflow.com/a/7641259/556006

私も同じ問題を抱えていましたが、今、何が悪いのかを見つけました。私は最初、誤ってファイルをProcfileではなくProcFileと呼びました。そのファイルの名前を変更するだけでは、gitは取得しませんでした。最初にgitrm ProcFile -fを実行してから、新しい(正しい名前の)Procfileを追加する必要がありました。その後、gitによって正しくプッシュされ、Herokuによって正しくピックアップされました。

2
JVG

私は自分でこの問題を抱えていましたが、私の場合、web:とProcfileの開始コマンドの間にスペースがありませんでした。

たとえば、私はこのように間違っていました:

web:gunicorn run:app

コロンの後にスペースを追加して修正しました。

web: gunicorn run:app

2
jeffmaher

私はあなたがやったことがないと思いますgit Push heroku master-つまり、Herokuはあなたのコードを見たことがありません。

1
Nitzan Shaked