web-dev-qa-db-ja.com

heroku open-アプリが指定されていません

単純なRailsアプリを使用して作成しました

Rails new myapp

次に、次を使用してherokuスタックを作成しました:

heroku create --stack cedar 

しかし、私がHerokuでアプリを開いてみると:

heroku open

私は得る:

 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app <app name>

この:

$ heroku open --app myapp

私にこれを与えます:

 !    App not found

明らかな何かが欠けていますか?

54
Snowcrash

Herokuに既存のアプリがあり、アプリが指定されていないというメッセージが表示される場合は、ローカル端末でこれを実行して修正できます。

heroku git:remote -a MyHerokuAppName

126
Aaron Gray

デフォルトでは、Herokuはディレクトリ名でアプリを作成していません。

heroku create --stack cedar
Creating calm-bayou-3229... done, stack is cedar
http://calm-bayou-3229.herokuapp.com/ | [email protected]:calm-bayou-3229.git

「calm-bayou-3229」という名前のアプリケーションを作成しています。

heroku open --app calm-bayou-3229
Opening http://calm-bayou-3229.herokuapp.com/

いつでもアプリをリストできます:

heroku apps
25

問題を解決する別のアプローチは、herokuアプリに関連付けられた.git/configファイルが何をしているのかを広く理解し、必要な調整を行うことです。

1. herokuプロジェクトのルートから.git/configを開きます。

Git configファイルは、特にマシン上でherokuアカウントをいくつかジャグリングしている場合、次のようになります。

git@heroku.{heroku.account}ファイルの設定により、[email protected]の代わりに~/.ssh/configが表示されます。 heroku-app-8396.gitへの参照は、herokuプロジェクト名に一致するように更新する必要があります。所有している各h​​erokuアカウントには、~/.ssh/configファイルにエントリが必要です。当然、このherokuプロジェクトが関連付けられているherokuアカウントは、.git/configファイルに表示されるはずです。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[remote "Origin"]
    fetch = +refs/heads/*:refs/remotes/Origin/*
    url = [email protected]:heroku-app-8396.git
[remote "heroku"]
    fetch = +refs/heads/*:refs/remotes/heroku/*
    url = [email protected]:heroku-app-8396.git
[branch "master"]
    remote = Origin
    merge = refs/heads/master
[heroku]
  account = heroku.account

2 .git pull heroku masterを実行すると、すべて正常に実行されるようです。

3. heroku logsを実行すると、エラーメッセージが表示されます。

$ heroku ps
!    No app specified.
!    Run this command from an app folder or specify which app to use with --app APP.

どうして?

私が知る限り、herokuコマンドは{heroku.account}参照をどうするかを知らないようです。これらの参照をcom( 'accounts' herokuプラグインを使用していない場合のデフォルト値)に変更すると、herokuコマンドは再び機能しますが、今ではgit呼び出し別の問題があると言っています:

$ git pull heroku master

 !  Your key with fingerprint d6:1b:4c:48:8c:52:d4:d6:f8:32:aa:1a:e7:0e:a2:a1 is not authorized to access smooth-robot-8396.

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

これを解決する1つの方法は、gitのリモートとherokuのリモートを定義してから、使用するリモートをherokuに伝えることです。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[remote "Origin"]
    fetch = +refs/heads/*:refs/remotes/Origin/*
    url = [email protected]:heroku-app-8396.git
[remote "heroku"]
    fetch = +refs/heads/*:refs/remotes/heroku/*
    url = [email protected]:heroku-app-8396.git
[remote "heroku-app"]
    fetch = +refs/heads/*:refs/remotes/heroku/*
    url = [email protected]:heroku-app-8396.git
[branch "master"]
    remote = Origin
    merge = refs/heads/master
[heroku]
    remote = heroku-app
    account = heroku.account

コンテンツをリモートにプッシュするときにリモートを明示的に指定したいので、herokuリモートはそのためのものです。ただし、この構成はデフォルトを使用したプッシュ/プルにも対応しています(例:git Push) 。新しいリモート「heroku-app」を作成し、remote = heroku-appを追加して、URIにherokuアカウントを含まないリモートを使用するようherokuに指示します。

これで、必要に応じてgitおよびherokuコマンドを実行できます。

19
David Vezzani

私は同じ問題を抱えていました。私がしなければならなかったのは、プロジェクトディレクトリのモデルフォルダからコマンドを実行する代わりに、プロジェクトディレクトリにcdすることだけでした。

6

このクレイジーなことは私のために働いた:

ローカルマシンにアプリのgitリポジトリコピーがある場合は、cdをその場所に配置し、それだけです !!

アプリを使用できるようになります。次のようなコマンドでこれを確認できます:heroku logs -n 1500

2
student