web-dev-qa-db-fra.com

heroku open - aucune application spécifiée

Je viens de créer une simple application Rails en utilisant

Rails new myapp

puis créé la pile heroku en utilisant:

heroku create --stack cedar 

Mais lorsque j'essaie d'ouvrir l'application sur Heroku en utilisant:

heroku open

Je reçois:

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

Et ça:

$ heroku open --app myapp

me donne ceci:

 !    App not found

Suis-je en train de manquer quelque chose d'évident?

54
Snowcrash

Si vous avez une application existante sur Heroku et que vous obtenez ce message sans application spécifiée, vous pouvez la corriger en l'exécutant sur votre terminal local:

heroku git:remote -a MyHerokuAppName

126
Aaron Gray

Heroku par défaut ne crée pas d'application avec le nom de votre répertoire, donc quand vous le faites

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

il crée une application nommée 'calm-bayou-3229' Et vous pouvez le faire

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

Vous pouvez toujours répertorier vos applications avec:

heroku apps
25

Une autre approche pour résoudre le problème consiste à comprendre ce que fait le fichier .git/config associé à l'application heroku et à effectuer les ajustements nécessaires.

1.Ouvrez .git/config à partir de la racine de votre projet Heroku.

Votre fichier de configuration git peut ressembler à ceci, surtout si vous jonglez avec quelques comptes heroku sur votre machine.

git@heroku.{heroku.account} s'affiche au lieu de [email protected] en raison de la configuration de votre ~/.ssh/config fichier. La référence à heroku-app-8396.git doit être mis à jour pour correspondre au nom de votre projet Heroku. Chaque compte Heroku que vous avez doit avoir une entrée dans le ~/.ssh/config fichier. De toute évidence, le compte Heroku auquel ce projet Heroku est associé devrait apparaître dans votre .git/config fichier.

[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.Lorsque je lance git pull heroku master, tout semble bien fonctionner.

3.Lorsque je lance heroku logs, J'obtiens un message d'erreur:

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

Pourquoi?

Autant que je sache, la commande heroku ne semble pas savoir quoi faire avec la {heroku.account} les références. Si nous changeons ces références en com (qui est la valeur par défaut lorsque vous n'utilisez pas le plugin heroku 'accounts'), les commandes heroku fonctionnent à nouveau, mais maintenant nos git les appels disent qu'il y a un problème différent:

$ 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.

Une façon de résoudre ce problème consiste à définir une télécommande pour git et une télécommande pour heroku, puis d'indiquer à heroku la télécommande à utiliser.

[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

J'aime spécifier explicitement la télécommande lorsque je pousse du contenu vers une télécommande, donc la télécommande heroku est pour cela, même si cette configuration permet également de pousser/tirer en utilisant la valeur par défaut (par exemple, git Push). Je crée une nouvelle "application heroku" à distance et j'ajoute remote = heroku-app pour dire à heroku d'utiliser une télécommande qui n'inclut pas le compte heroku dans l'URI.

Maintenant, je peux exécuter mes commandes git et heroku comme je le souhaite.

19
David Vezzani

J'ai eu le même problème, tout ce que j'avais à faire était de cd dans le répertoire du projet au lieu d'exécuter les commandes du dossier du modèle dans le répertoire du projet.

6
Richardlonesteen

Cette chose folle a fonctionné pour moi:

Si vous avez la copie git repo de l'application sur votre machine locale, alors cd à cet emplacement et c'est tout !!

Vous pourrez utiliser l'application. Vous pouvez le vérifier par des commandes comme: heroku logs -n 1500

2
student